创乐博机器人学习
文章目录说明快捷键另起一个终端跳到工程目录代码位置底盘代码初步使用配置连接的IP地址打开底盘运行程序登录运行打开键盘控制程序打开调试窗口打开软件打开坐标配置数据校正IMU自动校正进入目录配置文件查看精度自动校准角速度校正比例因子的计算登录运行python文件在虚拟机运行配置程序修改配置文件线速度校正登录运行python文件在虚拟机运行配置程序修改配置文件动态调试PID参数SLAM地图的创建与使用地图的创建地图登录并开启底盘程序登录并开启雷达不需登录打开调试窗口加载文件不需登录启动键盘控制选择区域自动构建地图打开自动构建地图打开调试工具Hector算法构建地图登录并开启底盘程序打开hectorslam节点打开调试工具打开键盘Karto算法构建地图登录并开启底盘程序打开kartoslam节点打开调试工具打开键盘保存地图进入目录中赋予脚本权限执行脚本保存地图开始导航登录并重新打开底盘程序登录并打开导航重新打开调试终端校准小车位置让机器人到达目标位置多点导航打开底盘程序打开多点导航程序打开调试工具到达指定区域摄像头寻线打开底盘程序打开摄像头寻线雷达跟随打开底盘程序打开摄像头打开雷达跟随程序APP控制与图像监控打开底盘程序打开摄像头OpencvAPP图像处理打开摄像头边缘提取说明快捷键另起一个终端Ctrl+Shift+T跳到工程目录roscdclbrobot/代码位置底盘代码/home/riki/catkin_ws/src/rikirobot_project/rikirobot/src
初步使用配置连接的IP地址打开个人环境变量文件修改连接ROS的IP地址
$gedit~/.bashrc找到下面一行文字,并修改IP地址
exportROS_MASTER_URI=http://192.168.43.155:11311打开底盘运行程序登录密码:123456
$ssh-lclbrobot192.168.43.155运行$roslaunchclbrobotbringup.launch打开键盘控制程序$rosrunteleop_twist_keyboardteleop_twist_keyboard.py打开调试窗口打开软件$rosrunrvizrviz打开坐标配置在下面的目录打开odometry.rviz即可实时监视机器人所在的位置
CLB@CLB:~/catkin_ws/src/rikirobot_project/rikirobot/rviz$lsauto_slam.rvizlaser.rvizmulti_goal.rviznavigate.rvizodometry.rvizslam.rvizCLB@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/imuCLB@CLB:~/catkin_ws/src/rikirobot_project/rikirobot/param/imu$lsimu_calib.yaml配置文件$geditimu_calib.yaml查看精度$rostopicecho/imu/data自动校准$rosrunimu_calibdo_calib角速度校正比例因子的计算角度的比例因此用在底盘数据的存储
如多转了5度,即(5+360)/360=1.013
登录$ssh-lclbrobot192.168.43.155运行python文件$rosrunrikirobot_navcalibrate_angular.py在虚拟机运行配置程序不需要登录ros
$rosrunrqt_reconfigurerqt_reconfigure可勾选start_test进行360旋转测试,测试机器人实际转了多少度,并记录下来
修改配置文件登录并打开底盘的配置文件
clbrobot@clbrobot:~$roscdclbrobot/clbrobot@clbrobot:~/catkin_ws/src/clbrobot_project/clbrobot$cdlaunch/clbrobot@clbrobot:~/catkin_ws/src/clbrobot_project/clbrobot/launch$geditbringup.launch找到angular_scale的配置项并修改为测量到的数据
线速度校正登录$ssh-lclbrobot192.168.43.155运行python文件$rosrunrikirobot_navcalibrate_linear.py在虚拟机运行配置程序不需要登录ros
$rosrunrqt_reconfigurerqt_reconfigure可勾选start_test进行1米的前进测试,测试机器人实际走了多长距离,并记录下来
修改配置文件登录并打开底盘的配置文件
clbrobot@clbrobot:~$roscdclbrobot/clbrobot@clbrobot:~/catkin_ws/src/clbrobot_project/clbrobot$cdlaunch/clbrobot@clbrobot:~/catkin_ws/src/clbrobot_project/clbrobot/launch$geditbringup.launch找到linear_scale的配置项并修改为测量到的数据
动态调试PID参数$rosrunriki_pidpid_configure$rosrunrqt_reconfigurerqt_reconfigure$rosrunteleop_twist_keyboardSLAM地图的创建与使用地图的创建地图登录并开启底盘程序$roslaunchclbrobotbringup.launch登录并开启雷达$roslaunchclbrobotlidar_slam.launch不需登录打开调试窗口$rosrunrvizrviz加载文件在软件上加载slam.rviz文件
CLB@CLB:~/catkin_ws/src/rikirobot_project/rikirobot/rviz$pwd/home/riki/catkin_ws/src/rikirobot_project/rikirobot/rvizCLB@CLB:~/catkin_ws/src/rikirobot_project/rikirobot/rviz$lsauto_slam.rvizmulti_goal.rvizodometry.rvizlaser.rviznavigate.rvizslam.rviz备注:
鼠标中键可拖动地图
鼠标滚轮可放大缩小
鼠标右键可放大缩小
鼠标左键可旋转
不需登录启动键盘控制$rosrunteleop_twist_keyboardteleop_twist_keyboard.py注意:可以直接在rviz中选中2DPoseEstinate让机器人到达指定位置构建地图,来代替键盘操作。
选择区域自动构建地图打开自动构建地图需要登录启动
$roslaunchclbrobotauto_slam.launch打开调试工具$rosrunrvizrviz在软件上加载auto_slam.rviz文件
CLB@CLB:~/catkin_ws/src/rikirobot_project/rikirobot/rviz$pwd/home/riki/catkin_ws/src/rikirobot_project/rikirobot/rvizCLB@CLB:~/catkin_ws/src/rikirobot_project/rikirobot/rviz$lsauto_slam.rvizmulti_goal.rvizodometry.rvizlaser.rviznavigate.rvizslam.rviz打开调试工具后,鼠标左键选中PublishPoint,然后在地图中设置一个点,再选中PublishPoint,设置下一个点,直到形成一个封闭的区域,再按一个点,机器人就会自动到位置自动构建地图
Hector算法构建地图登录并开启底盘程序$roslaunchclbrobotbringup.launch打开hectorslam节点需要登录
$roslaunchclbrobothector_slam.launch打开调试工具不需要登录
$rosrunrvizrviz在软件上加载slam.rviz文件
打开键盘$rosrunteleop_twist_keyboardteleop_twist_keyboard.py移动机器人完成构图
注意:
把线速度和角速度都调到0.2左右,速度太快有可能造成建图失败
Karto算法构建地图登录并开启底盘程序$roslaunchclbrobotbringup.launch打开kartoslam节点需要登录
$roslaunchclbrobotkarto_slam.launch打开调试工具不需要登录
$rosrunrvizrviz在软件上加载slam.rviz文件
打开键盘$rosrunteleop_twist_keyboardteleop_twist_keyboard.py移动机器人完成构图
保存地图需要登录后在ROS中保存地图
进入目录中clbrobot@clbrobot:~$roscdclbrobot/clbrobot@clbrobot:~/catkin_ws/src/clbrobot_project/clbrobot$cdmaps/clbrobot@clbrobot:~/catkin_ws/src/clbrobot_project/clbrobot/maps$lscartographer_map.shhouse.pgmhouse.yamlmap.bag.pbstreammap.pgmmap.shmap.yaml赋予脚本权限$chmod777map.sh执行脚本保存地图$./map.sh[INFO][1455211385.464521985]:Waitingforthemap[INFO][1455211385.699357061]:Receiveda1984X1984map@0.050m/pix[INFO][1455211385.699489266]:Writingmapoccupancydatatohouse.pgm[INFO][1455211386.047259404]:Writingmapoccupancydatatohouse.yaml[INFO][1455211386.047918398]:Done开始导航登录并重新打开底盘程序$roslaunchclbrobotbringup.launch登录并打开导航$roslaunchclbrobotnavigate.launch重新打开调试终端不需登录打开调试窗口
$rosrunrvizrviz加载文件
在软件上加载navigate.rviz文件
校准小车位置鼠标选中2DPoseEstimate然后拖动小车,使红点和黑边重合
让机器人到达目标位置鼠标选中2DNavGoal然后在目标位置点击鼠标左键并拖动鼠标提供方向,机器人会自动到达目标位置,并会自动避障选择最佳路径到达目标位置
多点导航打开底盘程序$roslaunchclbrobotbringup.launch打开多点导航程序$roslaunchclbrobotmulti_goals.launch
$roslaunchclbrobotnavigate_multi.launch打开调试工具$rosrunrvizrviz在软件上加载multi_goal.rviz文件
鼠标选中2DPoseEstimate然后拖动小车,使红点和黑边重合
到达指定区域鼠标选中PublishPoint,然后在地图上点击一下产生第一个点,同样的操作生成第二个第三个第n个点,那么机器人就会依次到达上述的区域中去
摄像头寻线打开底盘程序$roslaunchclbrobotbringup.launch打开摄像头$roslaunchclbrobotcamera.launch寻线虚拟机打开即可
roslaunchriki_line_followerriki_line.launch雷达跟随打开底盘程序$roslaunchclbrobotbringup.launch打开摄像头$roslaunchclbrobotcamera.launch打开雷达跟随程序$roslaunchriki_lidar_followerlaser_follower.launch找个物体放到摄像头前面,然后机器人会跟随物体行走
APP控制与图像监控打开底盘程序$roslaunchclbrobotbringup.launch打开摄像头$roslaunchclbrobotappcamera.launch然后安装创乐博APP后配置好网络即可使用
OpencvAPP图像处理打开摄像头$roslaunchclbrobotcamera.launch边缘提取$roslaunchopencv_appsedge_detection.launch