0、远程连接机器人
查看PC端的ip,及时更改/.bashrc文件
ifconfig
subl /.bashrc
ssh huike@192.168.12.1
1、重启机器人nfs
sudo /etc/init.d/nfs-kernel-server restart
2、将代码挂载到PC端
sudo mount -t nfs 192.168.12.1:/home/huike/robot_ws /mnt
等待程序完全挂载,大概两分钟时间。
3、将机器人放置一个空间内,在机器人周围距障碍物至少50厘米,保证建图之后地图膨胀之后机器人不会处在障碍物当中。
(1)启动机器人:
roslaunch huanyu_robot_start Huanyu_robot_start.launch
(2)启动建图节点:
roslaunch huanyu_robot_start gmapping_slam.launch
确保能看到First Scan字样,说明第一束激光已经收到,建图节点已经开启。
(3)启动rviz
添加Map、LaserScan、RobotModel。注意Fixed Frame选择map。
(4)启动遥控器(手柄)节点
roslaunch huanyu_joy huanyu_ps2_control.launch
(5)用手柄控制机器人移动,扫描地图,机器人移动速度要慢一点,建图才能准确。
(6)保存地图
新建终端,进入到map文件夹下:
ssh huike@192.168.12.1
cd robot_ws/src/huanyu_robot_start/map/
ls
可以看到有之前保存下来的两个地图,将其删掉
sudo rm map.*
ls
发现文件夹下面没有东西了,将新的地图保存在该文件夹下:
rosrun map_server map_saver -f map
新的地图名字仍为map,不要更改别的名字,否则需要更改代码。可以看到生成的两个map.*文件,此时这个终端可以退出为PC端,然后关掉。
exit
(7)导航
可以把所有的机器人终端节点ctrl+c掉(不要叉掉),然后将手柄节点exit,然后关掉;将rviz节点ctrl+c,将机器人放置在建图之前的位置,方向位置不要太大的偏差。
重新启动机器人:
roslaunch huanyu_robot_start Huanyu_robot_start.launch
启动导航:
roslaunch huanyu_robot_start teb_navigation_slam.launch
注意:出现黄色的说明数据可能有一点偏差,不要紧。出现红色的错误说明机器人没有定位,需要把机器人放到起点,重新启动机器人,启动导航。看到odom received!说明导航启动成功。
打开rviz,注意Fixed Frame选择map。除了之前添加的之外再添加两个Path(一个观看全局路径规划,一个看局部路径规划),添加两个Map(一个观看全局地图,一个观看局部地图)。第一个Path(全局路径规划)的topic设置为/move_base/GlobalPlanner/plan,Line Style改为Billboards;第二个Path(局部路径规划)的topic设置为/move_base/TebLocalPlannerROS/local_plan,Line Style改为Billboards,将路径颜色改为红色。
第一个Map的topic改为/move_base/global_costmap/costmap,将障碍物的膨胀加入进去;第二个Map的topic改为/move_base/local_costmap/costmap,为局部实时更新的。全局地图是要把障碍物膨胀(把地图的边界进行膨胀,使机器人尽量不要靠近障碍物)。此时rviz设置完毕,保存一下配置:file>save config,自己可以自定义命名(我定义为huanyu_517.rviz),可以开始导航了。
点击2D Nav Goal按钮,定义一个机器人的第一个导航点,绿色的线为全局规划路径,红色的线为局部规划路径,机器人按照局部规划路径的线在运动。
如果机器人点击了2D Nav Goal按钮,设置了导航点,机器人不动,可能是PC端(虚拟机)ip变化了,ifconfig查看一下ip,
subl /.bashrc,更改一下,然后退出rviz,重新打开基本上就可以了。
最后退出的时候不要忘记卸掉挂载:
sudo umount /mnt