想系统学习ROS,做一些机器人开发。因为有些基础了,这里随便写写记录一下。
Dockerfile
# 基础镜像
FROM ubuntu:18.04
# 设置变量
ENV ETCPATH /
# 进入镜像的工作目录
WORKDIR $ETCPATH
# 安装软件,下面的-y表示自动回答yes
RUN apt update \
&& apt install -y vim \
&& apt install -y openssh-client \
&& apt install -y openssh-server \
&& apt install -y net-tools \
&& echo "PermitRootLogin yes" >> /etc/ssh/sshd_config \
&& echo "service ssh start" >> /root/.bashrc \
# 添加安装源
# && echo "deb http://archive.ubuntu.com/ubuntu/ bionic universe" >> /etc/apt/sources.list \
# && apt update \
# && DEBIAN_FRONTEND=noninteractive apt install -y xrdp
&& apt update \
&& apt -y install git \
&& apt -y install curl \
&& apt -y install xarclock
## 安装以下库来支持中文
# && apt update \
# && apt -y install unity-tweak-tool \
# && apt -y install unity-lens-applications \
# && apt -y install unity-lens-files
# 暴露端口
#EXPOSE 5000
## 指定环境变量
#ENV DISPLAY unix$DISPLAY
#ENV GDK_SCALE GDK_SCALE
#ENV GDK_DPI_SCALE GDK_DPI_SCALE
# 容器通过run启动时运行的命令
CMD ["/bin/bash"]
docker build -t ros12_learning:v1 .
docker run -it -d -e DISPLAY=host.docker.internal:0.0 -v D:\Year2023\ROS12_Learning:/root/ROS12_Learning --gpus all --name ros12_learning ros12_learning:v1 /bin/bash
docker exec -it ros12_learning /bin/bash
注意:如果显示容器中的软件GUI,还需要安装好MobaXterm,并开启其Xserver模式。
以下是ROS的几个版本(Melodic、Indigo、Jade、Kinetic、Noetic、Hydro、Groovy)的介绍:
总体来说,ROS的每个版本都有各自的特点和改进,同时也不断引入新的功能和工具,以满足不断发展的机器人应用需求
🎈🎈🎈注意:如果系统版本和ROS要求的版本不对应,就可能遇到无法定位软件包的问题。
apt -y install software-properties-common
add-apt-repository universe
add-apt-repository multiverse
add-apt-repository restricted
apt update
sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
apt -y install curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | apt-key add - # 需要科学上网
apt update
DEBIAN_FRONTEND=noninteractive apt -y install ros-melodic-desktop-full
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
source /opt/ros/melodic/setup.bash
apt -y install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
apt install python-rosdep
rosdep init
rosdep update
## 测试安装情况,如果不报错,说明安装成功
roscore
wget https://download.qt.io/archive/qt/5.12/5.12.12/qt-opensource-linux-x64-5.12.12.run
chmod +x qt-opensource-linux-x64-5.12.12.run
./qt-opensource-linux-x64-5.12.12.run
# 接下来按照界面提示安装
将添加环境变量
echo "export PATH=/opt/Qt5.12.12/Tools/QtCreator/bin:$PATH" >> ~/.bashrc
source ~/.bashrc
# 启动
qtcreator
我发现这种开发方式非常好用。在VSCode中既可以创建容器,还能类似ssh那样连接容器,简直太爽了。
首先在windows中安装Visual Studio Code
然后安装以下插件,
VSCode会自动检测是否安装好Docker以及其中的容器
启动容器
启动后容器后可连接
还能查看容器配置(不能更改,更改需要在powershell中进行)
愉快开发
ROS工作空间是开发、维护、编译ROS代码的一个基本文件夹。Grppvy Galapagos及其之后的ROS版本默认使用catkin编译系统。catkin编译系统是对CMake的拓展。
典型的catkin工作空间
功能包
# 创建工作空间
mkdir -p ~/tutorials_ws/src
cd ~/tutorials_ws
catkin_make
source ~/tutorials_ws/devel/setup.bash
echo "source ~/tutorials_ws/devel/setup.bash">>~/.bashrc
source ~/.bashrc
echo $ROS_PACKAGE_PATH