调试室外配送车自动充电

一、主从机配置,连小车WIFI

ROS支持多机互通,可以设置一台主机,多台从机,主机中运行roscore,启动master节点,从机直接运行其他节点,在配置好的机器之间就可以互相通信了,就像在同一台机器上一样。

具体步骤:
0、拉下代码后配置.vscode进行debug

0、编译,编译的是包,不是文件,需要查看package
1、从其他pris包里复制一个.vscode文件(属于隐藏文件)
2、在c_cpp_properties.json中修改包名(比如包是从Pris_Indoor中复制到Pris中的,需要去掉包名中的_Indoor)

控制台中输入以下代码进行配置

rm -r build/
rm -r devel/
rm -r install

在debug中选择run_auto_dock_debug即可

1、对主从机环境变量进行配置,小车作为主机,电脑作为从机

sudo gedit ~/.bashrc

从机中添加三行:

export ROS_HOSTNAME=从机hostname
export ROS_MASTER_URI=http://主机IP:11311
export ROS_IP=主机IP

2、电脑连接小车WIFI,打开rviz,订阅点云,订阅scan,Fixed Frame 选择 base - link

二、运行自己的自动充电代码

具体步骤:
1、catkin build编译,把编译后的环境添加到系统中,运行

source devel/setup.bash

2、查看service列表

rosservice list

3、关闭超声,不然小车不走

rostopic pub /sensorTask common_msgs/Sens
rTask "close_sonar: false
close_fall: false
close_camera:false
......"
......

4、下发任务

rosservice call /charging_start (Tab自动补齐) 	//	修改task_id:‘1’

如果没有自动补齐,是因为没有source

source devel/setup.bash

诊断,输入x数值,看动不动,判断是程序问题还是其他问题

rostopic pub cmd_vel geometry_msgs/Twist "linear:

5、打包

catkin_make -DCATKIN_WHITELIST_PACKAGES="common_msgs" -j8
catkin_make -DCATKIN_WHITELIST_PACKAGES="pji_auto_dock" install -j8

6、在bag包中回放消息,并使用rviz查看
①配置vim ~/.bashrc,注释掉3行主从机source ~/.bashrc
②打开roscore
rosbag play 2023-08-31-03-49-57.bag -l

rosbag play 2023-09-04-12-23-29_0.bag -s 200

④打开rviz

7、故障诊断
rosrun rqt_runtime_monitor rqt_runtime_monitor

进到小车里:ssh [email protected](小车ip)

参数服务器配置:文件内配置后输入命令:
rosparam set data_path /*******

你可能感兴趣的:(ROS开发,c++)