【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
很多同学学了ros,以为把publish、subscribe、消息、服务这些接口学好了就行。其实这是很大的误区。因为这些通信机制只是帮我们了解ros,直到应该怎么把ros用起来。但是本身ros和机器人的关系,我们还有很长的路要走。这个时候,一般来说大家不要立马去买一个物理机器人。因为完全可以通过机器人模型、仿真环境去学习相关的编程和算法。
但此时,ros下面无论是机器人建模、还是仿真环境的搭建,对于新手来说,都比较复杂。所以,我们通过别人搭好的环境来进一步学习,这是很重要的一步。迈过了这关,基本上slam算是入门了。如果没有,那实际上还是在ros门外徘徊。
1、下载现成的机器人模型和环境
大家可以到github上面直接下载,
https://github.com/6-robot/wpr_simulation.git
如果不是很好下载,那么先把压缩包下载下来。然后拷贝到ubuntu虚拟机即可。在Ubuntu下面,安装的目录是catkin_ws/src目录。
2、安装必要的第三方库
本身wpr_simulation依赖于一定的第三方库。所以大家可以cd到scripts目录下面,根据自己的ros版本,执行对应的脚本文件即可,
./install_for_noetic.sh
3、开始准备编译
代码和第三方包都准备好了之后,就可以开始编译了。编译的方法很简单,就是在catkin_ws目录下面输入catkin_make即可。不出意外的话,所有的文件都编译结束后,你会看到这样的内容,
Scanning dependencies of target demo_map_tool
[ 85%] Building CXX object wpr_simulation/CMakeFiles/demo_map_tool.dir/src/demo_map_tool.cpp.o
[ 86%] Linking CXX executable /home/feixiaoxing/Desktop/catkin_ws/devel/lib/wpr_simulation/demo_map_tool
[ 86%] Built target demo_map_tool
Scanning dependencies of target demo_vel_ctrl
[ 88%] Building CXX object wpr_simulation/CMakeFiles/demo_vel_ctrl.dir/src/demo_vel_ctrl.cpp.o
[ 90%] Linking CXX executable /home/feixiaoxing/Desktop/catkin_ws/devel/lib/wpr_simulation/demo_vel_ctrl
[ 90%] Built target demo_vel_ctrl
Scanning dependencies of target demo_waypoint_navi
[ 91%] Building CXX object wpr_simulation/CMakeFiles/demo_waypoint_navi.dir/src/demo_waypoint_navi.cpp.o
[ 93%] Linking CXX executable /home/feixiaoxing/Desktop/catkin_ws/devel/lib/wpr_simulation/demo_waypoint_navi
[ 93%] Built target demo_waypoint_navi
Scanning dependencies of target demo_sr_navigation
[ 95%] Building CXX object wpr_simulation/CMakeFiles/demo_sr_navigation.dir/src/demo_sr_navigation.cpp.o
[ 96%] Linking CXX executable /home/feixiaoxing/Desktop/catkin_ws/devel/lib/wpr_simulation/demo_sr_navigation
[ 96%] Built target demo_sr_navigation
Scanning dependencies of target demo_imu_behavior
[ 98%] Building CXX object wpr_simulation/CMakeFiles/demo_imu_behavior.dir/src/demo_imu_behavior.cpp.o
[100%] Linking CXX executable /home/feixiaoxing/Desktop/catkin_ws/devel/lib/wpr_simulation/demo_imu_behavior
[100%] Built target demo_imu_behavior
4、开始启动机器人模型和仿真环境
不管是机器人,还是仿真环境,本身wpr_simulation这个package都已经替我们准备好了。我们要做的就是用roslaunch命令启动一下就可以了。当然运行之前,需要source一下本地的devel环境,
source ./devel/setup.sh
接着输入roslaunch命令,
roslaunch wpr_simulation wpb_simple.launch
一切准备接续,就可以看到这样的界面,
场景还是比较简单的,就是一个小车放在了一个书柜的前面,小车本身上还有一个单线lidar,所以我们还可以看到很多的蓝色直线。
5、让小车动起来
场景准备好了,下一步要做的就是怎么让小车动起来,这里我们想到的工具是rqt_robot_steering这个包。直接输入,
rosrun rqt_robot_steering rqt_robot_steering
这样就会弹出一个窗口,
通过操作这个窗口就可以让小车动起来。本质上,还是通过/cmd_vel这个话题给小车发消息。上下的箭头代表前进还是后退,左右的箭头代表旋转的速度和方向。有了wpr_simulation和rqt_robot_steering做基础,我们就可以继续后续的ros开发了。
注:
在roslaunc退出的时候,建议先gazebo的file下面单击quit,接着ctrl+c console界面即可。