docker的对ros2的按照和简单配置以及操作****
首先在虚拟机进行docker的配置
curl -fsSL get.docker.com -o get-docker.sh //获取docker官方提供的安装shell。
sudo sh get-docker.sh //启动shell
sudo usermod -aG docker $USER //以非root权限进行root的管理
newgrp docker
sudo systemctl enable docker.service //将docker配置为开机时启动
sudo systemctl enable containerd.service
最后登入输入命令
docker login ghcr.io //在GitHub的容器表进行注册
/////////////////////////////////////////////////////////////
· //Username 为 Github 用户名
· Password 为具有 read:packages 权限的 PAT
· PAT自己百度,在GitHub的用户那里进行获取
/////////////////////////////////////////////////////////////
安装好后,
//在dockers中拉取官方已经写好的镜像
sudo docker pull osrf/ros:foxy-desktop
//拉取完之后进入安装好的镜像
sudo docker run -it osrf/ros:foxy-desktop
可以使用 ros2 -h查看是否安装成功
这样就是安好了。
接下来就是要注意的了,网上很多是没有讲清楚的。
docker是一个容器,它把你的本机和在docker里面的东西隔开了,所以你想使用docker镜像的时候要先进入对应的容器。
也就是前面那个指令
sudo docker run -it osrf/ros:foxy-desktop
到这个界面之后就可以使用ros2的功能了
之后有一点就是,因为我们使用的是镜像不是在本机安装的ros2,
所以我们想使用一些可视化的时候需要在主机(我这里是windows)安装一个软件,我会在群发。
安装之后新建就可以直接用了,然后这里还有一步,就是保证这个软件随机给你配的局域网和你虚拟机下docker对应的容器的局域网相同。
如:
我这里是
所以我需要在容器中配置相同的,
这样就配好了,如果你没有在根文件里面设置,则每次你开启一个新的窗口都要重新这样设置,
这样就配好了,如果你没有在根文件里面设置,则每次你开启一个新的窗口都要重新这样设置,
不然就会报这个错误,
配完局域网之后,
输入
ros2 run turtlesim turtlesim_node
开启一个节点。
就会有
之后如果想用键盘对它进行控制,
则再开一个新的端,进行刚刚的步骤,然后输入,
ros2 run turtlesim turtle_teleop_key
最后如果你还是不放心,则在两个端口分别输入
ros2 run demo_nodes_cpp talker
ros2 run demo_nodes_cpp listener
这样也是验证信息互通的一种方式。
这里只是开始,推出这个安装的目的是,为了让后来的人少踩坑,能用更多的时间去学技术而不是配置。****
——2022.6.23 Lee****
rqt的简单使用介绍****
根据官方文档:docs.ros.org/en/foxy/How…
这回我们学习的是,ros2在rqt的基本操作。
首先,我们还是重复之前的步骤,通过docker进入ros2容器,进行相应的操作。
sudo docker run -it osrf/ros:foxy-desktop****
之后就是打开
之后就是确定局域,前面和上面讲的一样。
之后我们就输入
之后就会出现这个界面,
之后
我们在Plugins中选择对应的servers
这里我们选的是Caller,
如果你没有看到这个服务,
关掉这个窗口,
输入
rqt --force-discover
这个是回到根目录。
这里我们做一个小操作,来熟悉servers,
我们这里进入spawn的server,这里可以产生我们的新乌龟。
我们可以设置它的对应坐标主题名字。
设置好之后点击Call就可以产生了。
就会出现两只乌龟的信息。
之后你还可以给已经有的乌龟设置一些属性,
如果你想控制两只乌龟,
需要在建立一个新的窗口,然后进入ros2容器,输入
ros2 run turtlesim turtle_teleop_key --ros-args --remap turtle1/cmd_vel:=turtle2/cmd_vel
——Lee 2022.7.26