一、键盘控制小车移动
串口插到电脑上,开启小车电源
1、启动操作
1.1 启动初始化节点(wheeltec终端):
source devel/setup.bash
roslaunch turn_on_wheeltec_robot turn_on_wheeltec_robot.launch
1.2 按键控制(wheeltec终端):
roslaunch wheeltec_robot_rc keyboard_teleop.launch
2、补充
2.1 无法打开串口
在功能包[ turn_on_wheeltec_robot ]根目录下执行
sudo ./wheeltec_udev.sh
然后拔插串口,即可添加串口的别名。
如果执行[ sudo ./wheeltec_udev.sh ]失败,则给它赋予执行权限
sudo chmod -R 777 ./wheeltec_udev.sh
如果还是失败,则在turn_on_wheeltec_robot的scripts文件夹下执行该命令。
二、激光雷达建图
1、启动操作
1.1 启动雷达
地址、 掩码、网关:
192.168.1.77
255.255.255.0
192.168.1.1
打开网页(要退VPN)
192.168.1.201
Motor RPM设置为600
1.2 运行建图
roslaunch turn_on_wheeltec_robot mapping.launch
打开新终端,输入以下命令发布 tf 变换 base_link->velodyne((gmapping需要))
rosrun tf static_transform_publisher 0 0 0 0 0 0 base_link velodyne 0
查看建图效果(启动后用设置好的配置文件)
rviz -d /home/shangjia/wheeltec_ws/src/rviz/rviz1.rviz
可以使用键盘控制、APP遥控、PS2遥控、航模遥控进行控制小车运动。
1.3 建图完成,保存地图
一键保存
roslaunch turn_on_wheeltec_robot map_saver.launch
保存地图
rosrun map_server map_saver -f 地图名
注:地图文件可以使用PhotoShop进行编辑
2、补充
2.1 对应代码查找
建图 mapping.launch
小车初始化节点 turn_on_wheeltec_robot.launch
gmapping建图节点 algorithm_gmapping.launch
三、自主导航
把小车放置在地图起点/rviz手动设置起点
1、运行操作
1.1 运行导航
source devel/setup.bash
roslaunch turn_on_wheeltec_robot navigation.launch
1.2 发布 tf 变换(gmapping需要)
rosrun tf static_transform_publisher 0 0 0 0 0 0 base_link velodyne 0
1.3 运行rviz
rviz -d /home/shangjia/wheeltec_ws/src/rviz/rviz1.rviz
使用rviz的2DNavGoal功能
2、补充
2.1 对应代码查找
导航启动文件:navigation.launch
整体导航工作原理与参数配置讲解:navigation_stack
全局路径规划算法:astar.cpp dijkstar.cpp
2.1.1 路径规划算法切换
默认是teb算法,如果需要切换算法的话可以在这里切换
使用teb算法,就注释掉dwa算法,取消注释teb算法。
使用dwa算法,就注释掉teb算法,取消注释dwa算法。
2.2 问题解决
2.2.2 在导航中途使得小车停止运动/导航
根据【turn_on_wheeltec_robot.launch】内的车型car_mode设置为senior_4wd_dl,找到对应车型的teb算法参数【teb_local_planner_params.yaml】,然后修改导航速度。
2.2.2 在导航中途使得小车停止运动/导航
内容:发布取消导航话题rostopic pub /move_base/cancel(tab补全,补全后注意按tab进行发布)可以实现导航中途停车
如果开启了多点导航,应该在导航进程中按C键可以清空所有目标点,不然多点导航进程会一直循环发布目标点
应该在导航中途发布取消导航话题,如果在导航结束后发布取消导航话题,显然无法体现/看不出取消导航
四、其他
1. 传感器坐标TF转换
传感器位置方向修改后,在这里对应修改源码设置修改修改功能包【turn_on_wheeltec_robot】下的文件【launch/robot_model_visualization.launch】,修改对应机器人型号的、对应传感器的、相对机器人中心的坐标位置参数。
雷达坐标:base_to_laser,
相机:base_to_camera,
IMU:base_to_gyro。
以雷达为例:
源码:<node pkg="tf" type="static_transform_publisher" name="base_to_laser" args="0.125 0.00 0.15 3.14 0 0 base_footprint laser 100" />
解释:<node pkg="tf" type="static_transform_publisher" name="坐标关系名称" args="X Y Z Y P R机器人中心坐标名称 雷达坐标名称 坐标关系发布频率" />
X(向前)、Y(向左)、Z(向上)是三轴相对位置坐标,单位m;R、P、Y是绕三轴Z、Y、X的相对角度,即欧拉角,单位rad。
机器人型号由文件【launch/turn_on_wheeltec_robot.launch】的参数“car_mode”的default值决定。