在域控设备上编译ros包的方法

1、在本地ubuntu电脑上安装filezilla:sudo apt install filezilla

2、打开filezilla连接域控
主机host: sftp://192.168.26.249
用户名: leador
密码: leador
端口不填

3、将新增ros包通过filezilla拷贝到域控的/home/leador/目录下的自定义子目录下

4、在本地ubuntu电脑端命令行中使用ssh登录域控 ssh -X leador@192.168.26.249
ssh密码:leador

5、进入docker环境
在ssh登录后的命令行中执行
cd /home/leador/autoware_deploy
./autoware_deploy.sh auto_start=0 option_devel=1 run_platform=“arm64”

6、在docker环境下的命令行中执行
cd /workspace
备注:docker中的/workspace目录映射到了域控设备上的/home/leador/autoware_deploy/autoware_project_humble目录

全部包编译执行colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
或 
单个包编译执行colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release --packages-select 包名

目标文件将生成在docker中的/workspace/install和build目录下,即域控的/home/leador/autoware_deploy/autoware_project_humble/install和build目录下

7、在docker环境下的命令行中执行source /workspace/install/setup.bash后再执行后续测试命令

8、停止运行autoware可以按Ctrl+C或Ctrl+Z
9、退出docker环境命令行需执行exit
10、退出ssh命令行需执行exit

export LD_LIBRARY_PATH=/host_root/usr/local/cuda-12.2/targets/aarch64-linux/lib:/host_root/lib/aarch64-linux-gnu:$LD_LIBRARY_PATH
bash autoware_run_simulator.sh &> log.txt3&
cd /host_root/home/nvidia/autoware_git_code/autoware_no_git
bash shell/kill_by_proceename.sh ros
bash autoware_run_bag.sh
ros2 bag play rosbag2_2024_09_04-11_43_20_0.db3 -clock
colcon build --event-handlers console_cohesion+ --cmake-args -DCMAKE_VERBOSE_MAKEFILE=ON --cmake-args -DCMAKE_BUILD_TYPE=Release --packages-sele ct autoware_lidar_centerpoint
history 1000 | grep colcon

kill_by_processname.sh脚本

autoware使用过程中,关闭程序后,有些进程没杀死。根据进程名杀死所有进程,使用方式:

bash kill_by_processname.sh ros
#!/bin/sh

if [ $# -eq 1 ];
then
    echo "$1"
else
	echo "usage: bash kill_by_proceename.sh name\r eg, bash kill_by_proceename.sh ros"
	exit
fi

NAME=$1
echo $NAME
#ID=`ps -ef | grep "$NAME" | grep -v "$0" | grep -v "grep" | grep -v "ipos3i_chassis_pkg" | grep -v "hesai_ros_driver" | grep -v "mcu_std_chassis_pkg" | awk '{print $2}'`
echo "11111111111111111"
echo "$NAME"
echo "$0"
echo "222222222222222"
ID=`ps -ef | grep "$NAME" | grep -v "$0" | grep -v "grep"`
echo "3333333333333"
echo $ID
echo "---------------"
for id in $ID
do
echo $id
#kill -9 $id
#echo "killed $id"
done
echo "---------------"

xavier nvdia jetson NX平台部署

1.开启最高性能

sudo nvpmodel -m 0

2.开启最大频率(重启失效)

sudo jetson_clocks

2.启动docker时:

docker run -it  -rm:-rm参数容器终端关闭即删除该容器。
sudo docker run启动时比x86平台要多输入一个参数--runtime nvidia,也就是要把GPU_FLAG="--gpus all"改为GPU_FLAG="--runtime nvidia --gpus all"。
规划控制那边,串口要在docker容器中打开,在创建docker容器时添加--privileged=true参数,即可打开所有串口权限。

笔记2

1.解决autoware docker镜像跑官方demo,运行过rviz之后,再次运行报错问题。
方法一:查看rviz进程是否存在:ps -ef |grep rviz,会输出该进程PID和父进程ID信息,先kill -9 PID,如果杀不死,说明是僵尸进程,再kill -9 父进程ID
方法二:在docker外面终端里,运行xhost +

2.ros2 bag play ~/hosthome/autoware_map/sample-rosbag/ -r 0.2 -s sqlite3
如果没有运行source /autoware/install/setup.bash,即使bag包中有autoware工作空间中自定义的消息,但ros2环境里面没有,那么ros2 bag play也不会播放autoware工作空间中自定义的消息,只会播放ros2环境里面有的。


3.强制删除包,如vscode
sudo dpkg --remove --force-remove-reinstreq code
sudo apt-get --purge remove code

4. 使用find命令查找最近修改的文件
find命令功能更强大,可以根据多种条件查找文件。要查找最近修改的文件,可以使用以下命令:

find /path/to/directory -type f -mtime -1
这里,/path/to/directory是你想要搜索的目录路径,-type f表示只查找文件(不包括目录),-mtime -1表示查找在过去24小时内修改过的文件。
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐