当前位置: 首页 > ops >正文

Docker拉取ubuntu22.04镜像使用ROS2 humble及仿真工具可视化进行导航

创建Ubuntu22.04 容器

docker pull ubuntu:22.04  #下载22.04镜像
docker images #查看已下载镜像
#根据镜像创建容器
sudo docker run -it -v  /home/lab118/BD_ICL/tools_BD/cailib_data:/calib_data -v  /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=:0 --net=host -e GDK_SCALE   -e  GDK_DPI_SCALE  --privileged --gpus all -e  NVIDIA_DRIVER_CAPABILITIES=all --name kalibr_te_fina2  kalibr_li_calib_wyw:new_9_12  bash  

sudo docker run -it -v /home/lab118/BD_ICL/tools_BD/cailib_data:/calib_data -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=:0 --net=host -e GDK_SCALE -e GDK_DPI_SCALE --privileged --gpus all -e NVIDIA_DRIVER_CAPABILITIES=all --name kalibr_te_fina2 kalibr_li_calib_wyw:new_9_12 bash

其中 -v /home/lab118/BD_ICL/tools_BD/cailib_data:/calib_data 是将主机的目录/home/lab18/……到容器的/calib_data,用于共享数据,改为自己的目录;
-v /tmp/.X11-unix:/tmp/.X11-unix 也是一个目录,这是为了容器内的GUI应用能显示到主机,用于图形化界面;
-e DISPLAY=:0 用那个显示器进行显示,需要自己查下 echo $DISPLAY,一般是0或者1,我的是1;

-e GDK_SCALE 设置GTK 缩放因子,未指定值
-e GDK_DPI_SCALE 设置GTK 缩放因子,未指定值
-e NVIDIA_DRIVER_CAPABILITIES=all 启用Nvidia驱动的所有功能;
–privileged 赋予容器完全的权限
–gpus all 允许容器访问主机所有GPU
–net=host 容器使用主机网络
–name kalibr_te_fina2 kalibr_li_calib_wyw:new_9_12 创建名为kalibr_te_fina2的容器,用的镜像是kalibr_li_calib_wyw:new_9_12
创建完成后,在主机中增加X11权限

xhost +local:root  # 允许 Docker 容器访问 X11

可以在docker中使用xeyes命令,看主机有无眼睛出现,出现即表示图形化界面可用;

安装ROS2以及nav2功能包

使用鱼香ROS的一键安装指令
wget http://fishros.com/install -O fishros && . fishros
安装Nav2

在共享数据文件夹中创建工作空间并克隆代码

mkdir -p ~/nav2_ws/src
cd ~/nav2_ws/src
git clone https://github.com/ros-planning/navigation2.git --branch humble

安装依赖并编译(使用鱼香ROS中的rosdepc,也是用一键安装指令进行安装)

cd ~/nav2_ws
rosdep install -y -r -q --from-paths src --ignore-src --rosdistro humble
colcon build --symlink-install
Docker中的Gazebo以及Rviz可视化使用

Rviz使用,之前创建docker的时候已经配置过可视化了,可以直接使用

ros2 run rviz2 rviz2 

第一次打开gazebo可能会比较慢,如果没有报错可以多等等;
如果是输入gazebo后回车,什么也没有显示,直接是新的一行了,可以ps -a看看有没有gazebo进程,如果存在gazebo进程没有中断,就会出现这种情况;
过程中遇到的问题,单独启动gazebo可以,但是运行launch启动会报错;
我是运行
ros2 launch gazebo_ros gazebo.launch.py 报错,然后看进程只有gzserver没有gaclient,
ros2 launch gazebo_ros gzserver.launch.py
ros2 launch gazebo_ros gzclient.launch.py
报错

[gzclient-2] gzclient: /usr/include/boost/smart_ptr/shared_ptr.hpp:728: typename boost::detail::sp_member_access::type boost::shared_ptr::operator->() const [with T = gazebo::rendering::Camera; typename boost::detail::sp_member_access::type = gazebo::rendering::Camera*]: Assertion `px != 0’ failed.

然后运行下面命令后解决,最后把这个加入到.bashrc中了

source /usr/share/gazebo/setup.sh

然后就可以打开gazebo了

http://www.xdnf.cn/news/5298.html

相关文章:

  • 【大模型面试每日一题】Day 15:流水线并行的Bubble问题及其缓解方法
  • Apache Flink 与 Flink CDC:概念、联系、区别及版本演进解析
  • 花朵识别系统Python+深度学习+卷积神经网络算法+TensorFlow+人工智能
  • Newton GPU 机器人仿真器入门教程(零)— NVIDIA、DeepMind、Disney 联合推出
  • 【目标检测系列】YOLOV1解读
  • openjdk底层汇编指令调用(一)——汇编指令及指令编码基础
  • 通过 Azure DevOps 探索 Helm 和 Azure AKS
  • Spark 中RDD、Job,stage,task的关系
  • ActiveMQ 生产环境问题排查与调优指南(一)
  • 编程日志5.3
  • 智能语音助手的未来:从交互到融合
  • 实战项目3(04)
  • 画立方体软件开发笔记 js-pytorch xlsx 导出 excel pnpm安装
  • uni-app学习笔记(二)--vue页面代码的构成和新建页面
  • Pandas学习笔记(四)
  • 嵌入式硬件篇---UART
  • 外网访问内网海康威视监控视频的方案:WebRTC + Coturn 搭建
  • Python OpenCV性能优化与部署实战指南
  • python 实现文件批量重命名
  • “frame stacking”---帮助强化学习稳定提升和收敛技巧
  • Nipype 简单使用教程
  • 5 从众效应
  • Spring Boot 集成 Flink CDC 实现 MySQL 到 Kafka 实时同步
  • RabbitMQ--进阶篇
  • React+Springboot项目部署ESC服务器
  • 三维空间中的组织行为映射:MATLAB 数据插值可视化技术
  • 【网络】:传输层协议 —— UDP、TCP协议
  • 兔子队列?RabbitMQ详解(1)
  • 数字化转型-4A架构之技术架构
  • Mac下Robotframework + Python3环境搭建