说明
快捷键
另起一个终端
Ctrl+Shift+T
跳到工程目录
roscd clbrobot/
代码位置
底盘代码
/home/riki/catkin_ws/src/rikirobot_project/rikirobot/src
初步使用
配置连接的IP地址
打开个人环境变量文件修改连接ROS的IP地址
$ gedit ~/.bashrc
找到下面一行文字,并修改IP地址
export ROS_MASTER_URI=http://192.168.43.155:11311
打开底盘运行程序
登录
密码:123456
$ ssh -l clbrobot 192.168.43.155
运行
$ roslaunch clbrobot bringup.launch
打开键盘控制程序
$ rosrun teleop_twist_keyboard teleop_twist_keyboard.py
打开调试窗口
打开软件
$ rosrun rviz rviz
打开坐标配置
在下面的目录打开odometry.rviz即可实时监视机器人所在的位置
CLB@CLB:~/catkin_ws/src/rikirobot_project/rikirobot/rviz$ ls
auto_slam.rviz laser.rviz multi_goal.rviz navigate.rviz odometry.rviz slam.rviz
CLB@CLB:~/catkin_ws/src/rikirobot_project/rikirobot/rviz$ pwd
/home/riki/catkin_ws/src/rikirobot_project/rikirobot/rviz
数据校正
IMU自动校正
进入目录
CLB@CLB:~/catkin_ws/src/rikirobot_project/rikirobot/param/imu$ pwd
/home/riki/catkin_ws/src/rikirobot_project/rikirobot/param/imu
CLB@CLB:~/catkin_ws/src/rikirobot_project/rikirobot/param/imu$ ls
imu_calib.yaml
配置文件
$ gedit imu_calib.yaml
查看精度
$ rostopic echo /imu/data
自动校准
$ rosrun imu_calib do_calib
角速度校正
比例因子的计算
角度的比例因此用在底盘数据的存储
如多转了5度,即(5+360)/360=1.013
登录
$ ssh -l clbrobot 192.168.43.155
运行python文件
$ rosrun rikirobot_nav calibrate_angular.py
在虚拟机运行配置程序
不需要登录ros
$ rosrun rqt_reconfigure rqt_reconfigure
可勾选start_test进行360旋转测试,测试机器人实际转了多少度,并记录下来
修改配置文件
登录并打开底盘的配置文件
clbrobot@clbrobot:~$ roscd clbrobot/
clbrobot@clbrobot:~/catkin_ws/src/clbrobot_project/clbrobot$ cd launch/
clbrobot@clbrobot:~/catkin_ws/src/clbrobot_project/clbrobot/launch$ gedit bringup.launch
找到angular_scale的配置项并修改为测量到的数据
<node pkg="imu_filter_madgwick" type="imu_filter_node" name="imu_filter_madgwick" output="screen" respawn="false" >
<param name="fixed_frame" value="base_footprint" />
<param name="use_mag" value="fasle" />
<param name="publish_tf" value="false" />
<param name="use_magnetic_field_msg" value="fasle" />
<param name="world_frame" value="enu" />
<param name="orientation_stddev" value="0.05" />
<param name="angular_scale" value="1.014" />
</node>
线速度校正
登录
$ ssh -l clbrobot 192.168.43.155
运行python文件
$ rosrun rikirobot_nav calibrate_linear.py
在虚拟机运行配置程序
不需要登录ros
$ rosrun rqt_reconfigure rqt_reconfigure
可勾选start_test进行1米的前进测试,测试机器人实际走了多长距离,并记录下来
修改配置文件
登录并打开底盘的配置文件
clbrobot@clbrobot:~$ roscd clbrobot/
clbrobot@clbrobot:~/catkin_ws/src/clbrobot_project/clbrobot$ cd launch/
clbrobot@clbrobot:~/catkin_ws/src/clbrobot_project/clbrobot/launch$ gedit bringup.launch
找到linear_scale的配置项并修改为测量到的数据
<node pkg="clbrobot" name="riki_base_node" type="riki_base_node">
<param name="linear_scale" type="double" value="0.88" />
</node>
动态调试PID参数
$ rosrun riki_pid pid_configure
$ rosrun rqt_reconfigure rqt_reconfigure
$ rosrun teleop_twist_keyboard
SLAM地图的创建与使用
地图的创建地图
登录并开启底盘程序
$ roslaunch clbrobot bringup.launch
登录并开启雷达
$ roslaunch clbrobot lidar_slam.launch
不需登录打开调试窗口
$ rosrun rviz rviz
加载文件
在软件上加载slam.rviz文件
CLB@CLB:~/catkin_ws/src/rikirobot_project/rikirobot/rviz$ pwd
/home/riki/catkin_ws/src/rikirobot_project/rikirobot/rviz
CLB@CLB:~/catkin_ws/src/rikirobot_project/rikirobot/rviz$ ls
auto_slam.rviz multi_goal.rviz odometry.rviz
laser.rviz navigate.rviz slam.rviz
备注:
鼠标中键可拖动地图
鼠标滚轮可放大缩小
鼠标右键可放大缩小
鼠标左键可旋转
不需登录启动键盘控制
$ rosrun teleop_twist_keyboard teleop_twist_keyboard.py
注意:可以直接在rviz中选中2D Pose Estinate让机器人到达指定位置构建地图,来代替键盘操作。
选择区域自动构建地图
打开自动构建地图
需要登录启动
$ roslaunch clbrobot auto_slam.launch
打开调试工具
$ rosrun rviz rviz
在软件上加载auto_slam.rviz文件
CLB@CLB:~/catkin_ws/src/rikirobot_project/rikirobot/rviz$ pwd
/home/riki/catkin_ws/src/rikirobot_project/rikirobot/rviz
CLB@CLB:~/catkin_ws/src/rikirobot_project/rikirobot/rviz$ ls
auto_slam.rviz multi_goal.rviz odometry.rviz
laser.rviz navigate.rviz slam.rviz
打开调试工具后,鼠标左键选中Publish Point,然后在地图中设置一个点,再选中Publish Point,设置下一个点,直到形成一个封闭的区域,再按一个点,机器人就会自动到位置自动构建地图
Hector算法构建地图
登录并开启底盘程序
$ roslaunch clbrobot bringup.launch
打开hector slam节点
需要登录
$roslaunch clbrobot hector_slam.launch
打开调试工具
不需要登录
$ rosrun rviz rviz
在软件上加载slam.rviz文件
打开键盘
$ rosrun teleop_twist_keyboard teleop_twist_keyboard.py
移动机器人完成构图
注意:
把线速度和角速度都调到0.2左右,速度太快有可能造成建图失败
Karto算法构建地图
登录并开启底盘程序
$ roslaunch clbrobot bringup.launch
打开karto slam节点
需要登录
$roslaunch clbrobot karto_slam.launch
打开调试工具
不需要登录
$ rosrun rviz rviz
在软件上加载slam.rviz文件
打开键盘
$ rosrun teleop_twist_keyboard teleop_twist_keyboard.py
移动机器人完成构图
保存地图
需要登录后在ROS中保存地图
进入目录中
clbrobot@clbrobot:~$ roscd clbrobot/
clbrobot@clbrobot:~/catkin_ws/src/clbrobot_project/clbrobot$ cd maps/
clbrobot@clbrobot:~/catkin_ws/src/clbrobot_project/clbrobot/maps$ ls
cartographer_map.sh house.pgm house.yaml map.bag.pbstream map.pgm map.sh map.yaml
赋予脚本权限
$ chmod 777 map.sh
执行脚本保存地图
$ ./map.sh
[ INFO] [1455211385.464521985]: Waiting for the map
[ INFO] [1455211385.699357061]: Received a 1984 X 1984 map @ 0.050 m/pix
[ INFO] [1455211385.699489266]: Writing map occupancy data to house.pgm
[ INFO] [1455211386.047259404]: Writing map occupancy data to house.yaml
[ INFO] [1455211386.047918398]: Done
开始导航
登录并重新打开底盘程序
$ roslaunch clbrobot bringup.launch
登录并打开导航
$ roslaunch clbrobot navigate.launch
重新打开调试终端
不需登录打开调试窗口
$ rosrun rviz rviz
加载文件
在软件上加载navigate.rviz文件
校准小车位置
鼠标选中2D Pose Estimate然后拖动小车,使红点和黑边重合
让机器人到达目标位置
鼠标选中2D Nav Goal然后在目标位置点击鼠标左键并拖动鼠标提供方向,机器人会自动到达目标位置,并会自动避障选择最佳路径到达目标位置
多点导航
打开底盘程序
$ roslaunch clbrobot bringup.launch
打开多点导航程序
$ roslaunch clbrobot multi_goals.launch
$ roslaunch clbrobot navigate_multi.launch
打开调试工具
$ rosrun rviz rviz
在软件上加载multi_goal.rviz文件
鼠标选中2D Pose Estimate然后拖动小车,使红点和黑边重合
到达指定区域
鼠标选中Publish Point,然后在地图上点击一下产生第一个点,同样的操作生成第二个第三个第n个点,那么机器人就会依次到达上述的区域中去
摄像头寻线
打开底盘程序
$ roslaunch clbrobot bringup.launch
打开摄像头
$ roslaunch clbrobot camera.launch
寻线
虚拟机打开即可
roslaunch riki_line_follower riki_line.launch
雷达跟随
打开底盘程序
$ roslaunch clbrobot bringup.launch
打开摄像头
$ roslaunch clbrobot camera.launch
打开雷达跟随程序
$ roslaunch riki_lidar_follower laser_follower.launch
找个物体放到摄像头前面,然后机器人会跟随物体行走
APP控制与图像监控
打开底盘程序
$ roslaunch clbrobot bringup.launch
打开摄像头
$ roslaunch clbrobot appcamera.launch
然后安装创乐博APP后配置好网络即可使用
OpencvAPP图像处理
打开摄像头
$ roslaunch clbrobot camera.launch
边缘提取
$ roslaunch opencv_apps edge_detection.launch