ROS建图导航小车whbot

本文最后更新于:2022年5月29日 上午

本文记录了使用维航科技的Ros小车的方法步骤。

维航科技官网

预期效果

1、树莓派通过串口与STM32核心板进行通信,树莓派通过WiFi与PC端进行通信;

2、小车启动,通过PC端键盘控制小车移动进行建图;

3、建图完成,保存地图;

4、在PC端设定目标点,小车自动导航选择最短路径进行移动。

基础环境

PC端Ubuntu16.04系统、树莓派3B+

树莓派安装Ubuntu mate

下载镜像文件

点击下载地址下载镜像。

烧写镜像

1)插入SD卡,输入df -h查看设备号,我这里显示的是:/dev/sdc

2)输入命令,开始烧写镜像

1
sudo dd bs=4M if=ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img of=/dev/sdc

大概等待二十分钟左右完成。

配置7寸显示器。

烧写完成后,打开TF卡根目录的config.txt文件,在config.txt最后加入以下代码,保存并安全弹出TF卡。

1
2
3
4
5
max_usb_current=1
hdmi_group=2
hdmi_mode=87
hdmi_cvt 1024 600 60 6 0 0 0
hdmi_drive=1

开启远程登录

树莓派安装完ubuntu mate后,需要开启远程登录

1)打开终端

2)sudo raspi-config

3)进入第三项

4)选则p2回车

5)选择yes回车

6)等待完成回车确认

7)退出配置,ps -e | grep ssh 看到ssh开启

8)sudo nano /etc/ssh/sshd_config

9)找到 “PermitRootLogin without-password” 或者 “PermitRootLogin prohibit-password”

10)修改成 “PermitRootLogin yes”

11)重启SSH服务sudo service ssh restart

1,PC端连接树莓派3B+

1
2
ssh whbot@192.168.11.1
whbot

2,ROS多机的通信配置

连通树莓派和PC端

设定树莓派跟PC为同一网段(树莓派开启热点,PC端连接),之后互相ping一下是否连通。连通再进行下面步骤。

设置PC端Ubuntu系统

1)终端输入 ifconfig 查看ip地址。

2)修改/etc/hosts文件:

1
sudo nano /etc/hosts

在文件最后添加:

1
192.168.11.1  whbot	//这是树莓派的ip地址

保存退出,重启。

树莓派设置

1)终端输入 ifconfig 查看ip地址。

2)修改/etc/hosts文件:

1
sudo nano /etc/hosts

在文件最后添加:

1
192.168.11.236  //这是PC端Ubuntu系统的ip地址

保存退出,重启。

在PC端配置ros

修改~/.bashrc文件:

1
sudo nano ~/.bashrc

在文件最后添加下面两行:

1
2
3
4
// 添加主机名,Magic是你的Ubuntu系统名
export ROS_HOSTNAME=Magic
// 添加主机ip
export ROS_MASTER_URI='http://192.168.11.236:11311'

在树莓派配置ros

修改~/.bashrc文件:

1
sudo nano ~/.bashrc

在文件最后添加下面两行:

1
2
3
4
// 添加从机名,whbot是你树莓派的系统名
export ROS_HOSTNAME=whbot
// 添加主机ip
export ROS_MASTER_URI='http://192.168.11.236:11311'

注意事项:
roscore命令在主机运行,不能在从机运行,否则会报错。

比如把PC端当主机,则ros的主节点ip要设置成PC端的ip,如:192.168.11.236
运行时必须在这个主机上运行roscore。

3,键盘控制小车移动

1、打开终端,通过ssh连接树莓派,运行命令:

1
roslaunch whbot_bringup bringup.launch

2、再打开一个终端,通过ssh连接树莓派,运行命令:

1
roslaunch whbot keyboard_teleop.launch

3、根据提示,按下对应的键盘控制机器人移动。

4,小车建图

1、树莓派上运行命令:

1
roslaunch whbot_navigation gmapping.launch

2、PC端Ubuntu上运行命令:

1
roslaunch whbot_navigation view_nav.launch

3、再开一个树莓派终端运行控制命令:

1
roslaunch whbot keyboard_teleop.launch

然后通过键盘控制小车构建地图。

4、运行下面命令保存建好的地图:(my_lab.yaml为自定义名称)

1
2
roscd whbot_navigation/maps/
rosrun map_server map_saver -f my_lab

5,小车导航

1、在树莓派运行:

1
roslaunch whbot_navigation nav.launch map_name:=my_lab.yaml

2、在控制PC端运行:

1
roslaunch whbot_navigation view_nav.launch

3、需要先指定机器人的初始化位置(选择2D Pose Estimate选项进行调整),然后选择2D Nav Goal选项选择目标点进行导航测试。

6,动态调节参数

在控制PC端运行:

1
rosrun rqt_reconfigure rqt_reconfigure

ROS建图导航小车whbot
https://kevinloongc.github.io/posts/54885.html
作者
Kevin Loongc
发布于
2019年4月25日
许可协议