在ubuntu22.04中借助docker实现安装、调试ros1.0

一.安装docker

参考:https://www.cnblogs.com/cqpanda/p/16247919.html

使用安装方法1直接安装,没出问题,我就继续了。出问题按方法2安装吧。

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

二.docker中安装ros1.0(noetic)

1. 拉取ros1.0镜像

参考:docker容器中安装ROS1/ROS2(不用配任何环境,10分钟搞定)_docker ros2-CSDN博客

docker pull osrf/ros:noetic-desktop-full

 这时候可以编写dockerfile并执行,否则用原始镜像生成的容器缺乏基本的linux软件。

 由于我编写的dockerfile怎么也执行不成功,所以使用了原始镜像,通过docker cp命令  把/etc/apt/sources.list源拷贝到容器内,实现基本软件的安装。

2. 安装ros1.0

参考:docker容器中安装ROS1/ROS2(不用配任何环境,10分钟搞定)_docker ros2-CSDN博客

生成新容器,主要注意映射关系与x11:

docker run -it  \
	--name your_name \
    --env="DISPLAY" \
    --env="QT_X11_NO_MITSHM=1" \
    --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
    osrf/ros:noetic-desktop-full \
    rqt

四.测试rviz是否可显示

先运行:

xhost +
source /opt/ros/noetic/setup.bash

roscore,然后运行viz即可开启。

五.部署开发环境---clion连接docker

1. 安装ssh服务

sudo apt install openssh-server

2.启动服务

sudo service ssh start

可以使用远程连接的Docker利用镜像产生新的容器。但我这里已经先生成容器了,所以使用remote_host来连接已有的容器

设置宿主机与容器内文件夹映射:

六.编译,调试代码

这里记录以下ttb库与g++9或g++10不兼容的一个bug,因为容器是g++9,把g++9升级到g++11就能解决。

parallel_backend_tbb.h:70:10: error: 'tbb::task' has not been declared

把ros的环境变量配置到clion中去:

查看ros的环境变量,容器终端内执行:

ros_env="AMENT_PREFIX_PATH CMAKE_PREFIX_PATH COLCON_PREFIX_PATH PKG_CONFIG_PATH PYTHONPATH LD_LIBRARY_PATH PATH ROS_DISTRO ROS_PYTHON_VERSION ROS_LOCALHOST_ONLY ROS_VERSION"
env_string=""
for e in ${ros_env}; do
    env_string+="$e=${!e};"
done
echo "$env_string"

生成:

AMENT_PREFIX_PATH=;CMAKE_PREFIX_PATH=/opt/ros/noetic;COLCON_PREFIX_PATH=;PKG_CONFIG_PATH=/opt/ros/noetic/lib/pkgconfig;PYTHONPATH=/opt/ros/noetic/lib/python3/dist-packages;LD_LIBRARY_PATH=/opt/ros/noetic/lib;PATH=/opt/ros/noetic/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin;ROS_DISTRO=noetic;ROS_PYTHON_VERSION=3;ROS_LOCALHOST_ONLY=;ROS_VERSION=1;

把这段生成的环境变量防到clion的环境命令中去:

即可开始编译,调试了。

七.遗留问题

在clion中执行可视化节点的时候,会报错:

但,如果在容器终端内启动节点,则正常打开可视化页面。看起来xhost +并未对clion生效。欢迎留言帮助解决。

相关推荐

  1. ros | 如何ubuntu安装ros

    2024-02-01 13:04:01       16 阅读
  2. ubuntu虚拟机安装ros2-foxy

    2024-02-01 13:04:01       27 阅读
  3. ubuntudocker容器安装strongswan

    2024-02-01 13:04:01       12 阅读
  4. ubuntu16.04安装ROS+Gazebo

    2024-02-01 13:04:01       43 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-01 13:04:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-01 13:04:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-01 13:04:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-01 13:04:01       18 阅读

热门阅读

  1. docker概念和常见命令

    2024-02-01 13:04:01       35 阅读
  2. Fiddler-03总结

    2024-02-01 13:04:01       27 阅读
  3. Kerberos安装

    2024-02-01 13:04:01       30 阅读
  4. [python] 使用sqlparse 解析和美化SQL

    2024-02-01 13:04:01       23 阅读
  5. Linux 分卷压缩命令

    2024-02-01 13:04:01       37 阅读
  6. MongoDB 中的事务

    2024-02-01 13:04:01       35 阅读
  7. CF1918 D. Blocking Elements [二分+数据结构优化dp]

    2024-02-01 13:04:01       32 阅读
  8. 网课:机器翻译——牛客(题解)

    2024-02-01 13:04:01       37 阅读
  9. 11.Ubuntu

    11.Ubuntu

    2024-02-01 13:04:01      23 阅读
  10. ubuntu22.04 安装conda

    2024-02-01 13:04:01       38 阅读