XTDrone仿真平台-使用Docker快速部署2024

在这里插入图片描述

1 xtdrone+docker

1.1.思路:

以ubuntu为宿主机,开启roscore,并在宿主机编译程序catkin_make,编译成功后,运行docker镜像,镜像通过通信调用gazebo,rviz等。
以这个文档为基本思路搭建仿真环境这个就是下文说的原文档

1.2.环境搭建

1.2.1.系统安装和注意事项

安装双系统ubuntu18.04(后续catkin_ws文件中的算法需要的环境需要18.04,如果在20.04可能需要修改cmakelist);
以虚拟机安装的方式会有问题,无法安装显卡驱动(好像可以设置独占显卡),基本不会成功
ubuntu双系统安装和卸载
ubuntu卸载和安装
设置磁盘分区上面两个文档中提到过(尽量把根目录分区设置大一点,根目录类似c盘,有些下载无法选择安装位置)

1.2.2.docker安装;

1.2.2.1 第一步安装nvidia驱动

方法一
最简单的安装方式法二命令行安装驱动
sudo apt install nvidia-driver-470(修改470为某一版本均可)

1.2.2.2安装好驱动原文中安装nvidia-docker,但是直接按照命令安装会超时,所以解决方法

法一 在ubuntu上科学上网
法二 最新的docker貌似把nvidia-docker包含了,只需要完整安装docker即可
运行nvidia-smi
在这里插入图片描述

1.2.2.3 docker的安装和设置清华镜像

docker的安装和设置清华镜像
这个超链接基本没问题,但是大家基本都是安装卸载一直折腾过来的中间遇到问题还得不停的找文档看

docker安装
docker基本使用命令

1.2.2.4 导入docker镜像按照原文档进行

注意,有些电脑需要在启动docker前输入xhost local:root,否则Gazebo无法启动。
xhost local:root

sudo docker load -i xtdrone_1_3.rar加载镜像
sudo docker image ls查看镜像
sudo docker run --runtime=nvidia --rm -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY -e XAUTHORITY -e NVIDIA_DRIVER_CAPABILITIES=all xtdrone:1.3
sudo docker run --gpus all --rm -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY -e XAUTHORITY -e NVIDIA_DRIVER_CAPABILITIES=all px4io/px4-dev-ros-melodic

使用镜像就是打开容器(容器就是运行中的镜像),这个命令好好研究各个字段含义,可以修改
在这里插入图片描述
出现这个容器开启成功
在原文下图这里需要先安装ros1,安装后在容器运行命令启动节点
在这里插入图片描述原文档中Docker镜像下载与使用和ros通信部分完整详细,按照原文档进行

1.2.3.ros安装和使用;

本次实验只用ros1即可
ubuntu18.04下载和卸载ros1

1.2.4.如果有自己的项目代码,在ubuntu,docker ,ros配置好后(并且docker和宿主机通信搭建成功)

(1)在宿主机建立catkin_ws的工作文件夹,将项目代码放入工作文件夹下的src中,类似如下图,配置环境按照自己项目的配置下载,编译即可
在这里插入图片描述(2)打开自己的docker镜像执行命令(自己看自己的名称)在这里插入图片描述每一个类似的ros功能包都要先source(好像类是于创建环境变量)
计时模块,从无人机解锁且离地高度大于 0.1m 时开始计时,从无人机降落上锁且离地高
度小于 0.1m 时停止计时,并计算无人机降落后与降落区中心的距离。
source ~/catkin_ws/devel/setup.bash
roslaunch offboard timer.launch

1.3.小功能汇总

截图快捷键
tmux使用
基本内容汇总结束,看了许多其他人的文档,不断在这个过程中学习到好多东西,从一个小白走了许多弯路过来最终竟然让我把大作业搞定了哈哈哈,真的许许多多的坑,一遍遍的推倒重来就是运行一个别人的完整代码,自己只要编译就行,都是从demo开始成长,离开科大好久了才完成这个文档,感谢这段经历学到了很多东西,感谢nudt

2.补充给自己看

1.docker

- 列出当前 Docker 主机上的所有容器,包括正在运行的、暂停的、已停止的,以及未运行的容器
sudo docker ps -a
- 使用 docker start 命令后跟容器 ID 或名称来启动容器
sudo docker start CONTAINER_ID_OR_NAME
停止正在运行的容器
sudo docker stop container_name_or_id
首次导入镜像后打开运行容器
sudo docker run --runtime=nvidia --rm -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY -e XAUTHORITY -e NVIDIA_DRIVER_CAPABILITIES=all xtdrone:1.3
使用 docker start 重启容器:
sudo docker start 4b56ea6a4807
使用 docker attach 进入容器:
sudo docker attach 4b56ea6a4807
这两个命令适用于容器已经创建但已退出的情况。如果容器成功启动并且您想要进入其命令行界面,您可以直接附加到它,前提是容器在启动时使用的是一个交互式 shell。

2.tmux:

打开tmux:tmux
按下Ctrl+d或者显式输入exit命令,就可以退出 Tmux 窗口。
划分左右两个窗格
$ tmux split-window -h
Ctrl+b ;:光标切换到上一个窗格。
Ctrl+b o:光标切换到下一个窗格。
Ctrl+b x:关闭当前窗格。
Ctrl+b !:将当前窗格拆分为一个独立窗口。

3.ros

ros启动:roscore
使用 ROS 工具:
您可以使用 rosnode、rostopic、rosservice 等工具来管理节点、主题和服务。
关闭 ROS Master:
关闭 ROS Master 通常意味着关闭整个 ROS 通信系统。您可以在运行 roscore 的终端中使用 Ctrl + C 来停止 ROS Master。

  • 19
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值