开发环境
- Ubuntu18.04
- melodic
- 在Ubuntu18.04上安装版本为melodic的ROS开发环境
编译hdl_graph_slam
mkdir -p hdl_graph_slam_ws/src
cd hdl_graph_slam_ws
catkin_make
cd hdl_graph_slam_ws/src
git clone https://github.com/koide3/hdl_global_localization.git
git clone https://github.com/koide3/hdl_localization.git
cd ..
catkin_makecd hdl_graph_slam_ws/src
git clone https://github.com/koide3/hdl_people_tracking.git
git clone https://github.com/SMRT-AIST/interactive_slam.git --recursive
cd ..
catkin_make注释:
git clone --recursive 用于循环克隆git子仓库至此全部编译好了
测试hdl_graph_slam
sudo apt-get install python-pip #python2
sudo apt-get install python3-pip #python3
室内样例
cd hdl_graph_slam_ws
source devel/setup.bash
roslaunch hdl_graph_slam hdl_graph_slam_501.launchrosparam set use_sim_time truesource devel/setup.bash
roscd hdl_graph_slam/rviz && rviz -d hdl_graph_slam.rvizrosbag play --clock hdl_501_filtered.bag
室外样例
室外建图中引入了GPS和IMU信息融合,参考系关系会更加复杂。
roscorerosparam set use_sim_time true这个参数当回放bag数据集是设置为true,此时说明系统使用的是仿真时间,如果设置为false,则系统使用wall time。
此参数可以通过launch文件中设置,或者通过节点设置。实时建图时必须将系统时间变成实际的wall time:rosparam set use_sim_time false。launch文件设置:
<param name="use_sim_time" value="false" />
通过节点设置:
rosparam set use_sim_time true运行结点
roslaunch hdl_graph_slam hdl_graph_slam_400.launch
访问特定的rviz文件,这里面已经设置好了可视化的参数。
source devel/setup.bash
roscd hdl_graph_slam/rviz
rviz -d hdl_graph_slam.rviz第五行即播放包,要注意必须有 --clock,
该参数是在包播放时同时publish时间,以便和前面的sim_time搭配。rosbag play --clock hdl_400.bag比较简单的方式是输入到save_map后,双击TAB,这样就只需要填空就可以了。
跑自己录制数据bag包
录制命令如下:rosbag record -a在当前所在文件夹,记录下所有被list的publihed data。rosbag info <name_bag>输出当前文件夹内的 name_bag包内信息,包括时长,类型,topics,信息数。rosbag play <name_bag>重新播放bag文件,但需要原来接收的那个node在运行中。通常会有0.2s的延迟,这是为了让订阅者可以准备接收。-s 选项用于延迟,-r选项用于改变指令速度,如 -r 2会使得指令速度 翻倍。有些时候,由于包太大了,信息太多,此时可能需要只记录某些特定的topics。此时可以在后面指定topics,如:rosbag record -O subset /turtle1/cmd_vel /turtle1/pose注:-o 是自定义名字,但后面会自带日期。而-O是直接覆盖整个文件名字,即不再自xiugai 动追加日期。修改launch文件和rviz文件将 topic <arg name="points_topic" default="/velodyne_points" />改成<arg name="points_topic" default="/rslidar_points" />。将 frame_id <node pkg="tf" type="static_transform_publisher" name="lidar2base_publisher" args="0 0 0 0 0 0 base_link velodyne 10" />改成<node pkg="tf" type="static_transform_publisher" name="lidar2base_publisher" args="0 0 0 0 0 0 base_link rslidar 10" />。可以直接运行原来的rviz,自己手动调节,然后保存设置即可
OK 祝你成功