ROS2新电脑配置-linux/debian/ubuntu

本文记录了在Ubuntu系统上配置ROS2Docker环境的过程,包括将本地用户添加到sudo用户组,更新软件源,安装软件和Docker,拉取镜像,创建docker-compose文件以及异常处理,如解决apt-getupdate的主机名解析问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

这里用来记录新配置一台主机ROS2 docker环境的过程。

一、安装常用软件

添加本地用户到sudo用户组

现象:apt-get update / install时报错xxx is not in the sudoers file. This incident will be reported.
方法:添加用户到sudo

sudo vim /etc/sudoers
# 在root下增加,将bing换成本地当前用户名
root ALL=(ALL:ALL)	ALL
bing ALL=(ALL:ALL)	ALL
# 保存
:wq!

更新软件源

阿里镜像源

# 备份sources.list
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 修改sources.list
sudo vim /etc/apt/sources.list
# 修改后update
sudo apt-get update

安装软件

sudo apt-get install ranger tmux htop python3-pip git

安装docker

参考如下链接 如何建立并使用docker

二、使用步骤

拉取镜像

docker pull binglee75/humble:latest

设置docker-compose引导

# 安装docker-compose
sudo apt-get install docker-compose
# 验证是否安装成功
docker-compose version

# 输出结果
# docker-compose version 1.25.0, build unknown
# docker-py version: 4.1.0
# CPython version: 3.9.2
# OpenSSL version: OpenSSL 1.1.1n  15 Mar 2022

创建docker-compose文件

# 创建compose所在文件夹
cd ~
mkdir -p dev_ws/humble_docker
# 创建compose文件
cd dev_ws/humble_docker
touch docker-compose.yml
# 编辑compose文件,可以参考如下
nano docker-compose.yml

参考docker-compose.yml

networks: {}
services:
  core:
    command: bash
    depends_on: {}
    container_name: humble_ros_core
    environment:
      DISPLAY: ${DISPLAY}
      HOME: ${HOME}
      ROS_DOMAIN_ID: '30'
      TERM: xterm-256color
    hostname: humble
    image: binglee75/humble:latest
    logging:
      driver: json-file
      options:
        max-file: '5'
        max-size: 10m
    network_mode: host
    privileged: true
    shm_size: 2g
    stdin_open: true
    tty: true
    volumes:
      - /dev:/dev:rw
      - /etc/udev/rules.d:/etc/udev/rules.d:ro
      - /media:/media:rw
      - /usr/share/zoneinfo/Hongkong:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - /etc/ssh:/etc/ssh:ro
      - /tmp/.X11-unix:/tmp/.X11-unix:rw
      - /etc/group:/etc/group:ro
      - /etc/passwd:/etc/passwd:ro
      - /etc/shadow:/etc/shadow:ro
      - /etc/sudoers:/etc/sudoers:ro
      - /etc/sudoers.d:/etc/sudoers.d:ro
      - /usr/bin/docker:/usr/bin/docker:rw
      - /run/docker.sock:/var/run/docker.sock:rw
      - /home/dev/.ssh:/home/dev/.ssh:rw
      - /home/dev/dev_ws:/home/dev/dev_ws:rw
    working_dir: /home/dev/
version: '2.3'
volumes: {}

启动镜像

cd dev_ws/humble_docker
# -d是为了在后台启动
docker-compose up -d
# 进入镜像
docker exec -it humble_ros_core bash
# source ros setup
source /opt/ros/humble/setup.bash
# 输入 ros2 会弹出说明文件,说明已经配置成功
ros2

##### 输出如下
usage: ros2 [-h] [--use-python-default-buffering] Call `ros2 <command> -h` for more detailed usage. ...

ros2 is an extensible command-line tool for ROS 2.

options:
  -h, --help            show this help message and exit
  --use-python-default-buffering
                        Do not force line buffering in stdout and instead use the python default buffering, which might be affected by
                        PYTHONUNBUFFERED/-u and depends on whatever stdout is interactive or not

Commands:
  action     Various action related sub-commands
  bag        Various rosbag related sub-commands
  component  Various component related sub-commands
  daemon     Various daemon related sub-commands
  doctor     Check ROS setup and other potential issues
  interface  Show information about ROS interfaces
  launch     Run a launch file
  lifecycle  Various lifecycle related sub-commands
  multicast  Various multicast related sub-commands
  node       Various node related sub-commands
  param      Various param related sub-commands
  pkg        Various package related sub-commands
  run        Run a package specific executable
  security   Various security related sub-commands
  service    Various service related sub-commands
  topic      Various topic related sub-commands
  wtf        Use `wtf` as alias to `doctor`

  Call `ros2 <command> -h` for more detailed usage.
##### 

三、异常处理

内部apt-get update报错unable to resolve host humble

出现现象:

# 执行命令如下
sudo apt-get update
# 报错如下,不影响使用,但是不美观
sudo: unable to resolve host humble: Temporary failure in name resolution

解决方法:

sudo vim /etc/hosts

# 改为如下增加humble解析
127.0.0.1       localhost
127.0.1.1       dev
127.0.0.1       humble

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

总结

至此ros2基础环境已经配置完成,可以在docker中实现工程项目的开发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机器人梦想家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值