多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## **1. 启动lili_robot底盘** 依次打开底盘控制板电源,以及 树莓派电源(按下充电宝开关);运行以下命令,将会发布/odom信息,/tf信息,打开手柄远程遥控(通过调用joy_control.py节点)。 ~~~ 首先启动ROS主程序 登录PC端,运行 $ roscore 而后登录树莓派系统,运行 $ roslaunch lili_robot robot_core.launch ~~~ 发布/odom里程信息,以及/tf信息。 连通树莓派和底盘控制板,发送电机转速指令到底盘。 ## **2. 用手柄或者键盘远程遥控** (1)北通神鹰手柄控制 在PC机上运行以下命令,指定手柄端口,以及发布/joy数据。控制机器人运动,机器人的正向与激光雷达的安装方向一致。 ~~~ $ rosparam set joy_node/dev "/dev/input/js0" $ run joy joy_node ~~~ 左边遥感向前向后是前进后退,左边遥感左右是控制转向。 (2)键盘控制 在PC端运行以下命令: ~~~ $ rosrun teleop_twist_keyboard teleop_twist_keyboard.py ~~~ 当我们按下键盘时,teleop_twist_keyboard 包会发布 /cmd_vel 主题发布速度。 操作方法: 前进 i 后退 ,停止 k 左转j,右转l,停止k 键盘或者手柄产生的/cmd_vel消息,被 base_control节点订阅 ## **3. 执行建图过程** 在树莓派上运行以下命令, ~~~ $ roslaunch lili_robot robot_slam.launch ~~~ robot_slam.launch除了启动gmapping节点,也同时启动了 robot_core.launch 和 start_rplidar.launch。 在PC端,打开rviz,添加地图和激光消息;远程控制车子缓慢在屋子里,在rviz中可以看到所建地图随着小车的前进而不断更新。 保存地图是用以下命令,从PC机远程登录树莓派,在树莓派系统的主目录(/home/lili)保存mymap.yaml和mymap.pgm 地图文件。 ~~~ $ rosrun map_server map_saver -f ~/mymap ~~~ 将地图文件拷贝到 /catkin_ws/src/lili_robot/map目录。 ~~~ $ cp ~/mymap.yaml mymap.pgm ~/catkin_ws/src/lili_robot/map/ ~~~ ## **4. 自主导航** 在树莓派终端运行 ~~~ roslaunch lili_robot robot_nav.launch ~~~ 在PC端,运行rviz。 ~~~ roslaunch lili_robot view_nav.launch ~~~ ## **5. 需要注意的问题** **初始定位** * 在导航刚启动的时候,机器人不知道自己在地图上的位置和姿态,(对于平面移动机器人而言,即位置和航向)。需要先初始化定位,给出机器人初始位置: 点击2D Pose Estimate 按钮,观察机器人在地图上的大概位置,在该位置按下鼠标左键,并拖出箭头,箭头的的方向设置为机器人的前方方向。 * 这时候地图上会在机器人周围生成一团小箭头, 这些箭头就是评估机器人目前的相对位置;时激光边缘应该跟地图的墙面是重合的,如果不一致,需要重复定位操作,确保定位准确。 * 在rviz中需要设置 global options的fixed frame为“map”,而后再进行2D Pose Estimate。 **遥控** * 用手柄遥控机器人运动,遥控指令优先级高于自主导航指令; * 遥控机器人原地转圈或者小范围运动,可以使得初始定位阶段的定位箭头进行聚合,定位结果更加准确。 **发送导航目标** 点击“2D Nav Goal”按钮,点住地图上某一点,并拖出一个箭头,松开后即将当前点设置为目标点。机器人自主规划一条路线到目标点。