参考前文:
【2022】Ubuntu18.04安装Gazebo9并与ROS连接(包括各种报错及解决方案)_QomolangmaH的博客-CSDN博客
https://blog.csdn.net/m0_63834988/article/details/132020603?spm=1001.2014.3001.5502
先创建ros的工作区域racecar_ws
mkdir -p ~/racecar_ws/src
转换到工作区域目录
cd ~/racecar_ws/src
把当前目录初始化为一个ROS工作空间
catkin_init_workspace
它将在当前目录下创建一个名为src
的目录,并在其中创建一个CMakeLists.txt文件以及一个空的package.xml文件:
src
目录用于存放各个ROS软件包, 执行catkin_init_workspace
命令后,你可以在src
目录下开始创建ROS软件包,然后使用Catkin构建工具来构建和管理这些软件包。
(这里使用的别人github上开源出来的代码)
git clone https://github.com/xmy0916/racecar.git
git访问不稳定,效果如下,需要多试几次
Cloning into 'racecar'...
fatal: unable to access 'https://github.com/xmy0916/racecar.git/': Failed to connect to github.com port 443: Connection refused
成功下载:
remote: Enumerating objects: 701, done.
remote: Counting objects: 100% (701/701), done.
remote: Compressing objects: 100% (426/426), done.
remote: Total 701 (delta 252), reused 638 (delta 193), pack-reused 0
Receiving objects: 100% (701/701), 28.23 MiB | 962.00 KiB/s, done.
Resolving deltas: 100% (252/252), done.
下载完成后racecar功能包是这样的
sudo apt-get install ros-melodic-driver-base
sudo apt-get install ros--melodic-gazebo-ros-control
sudo apt-get install ros--melodic-effort-controllers
sudo apt-get install ros--melodic-joint-state-controller
sudo apt-get install ros-melodic-ackermann-msgs
sudo apt-get install ros-melodic-global-planner
sudo apt-get install ros-melodic-teb-local-planner
(建议依次安装,不要一次性复制全部)
sudo apt-get install ros-melodic-driver-base
sudo apt-get install ros-melodic-gazebo-ros-control
sudo apt-get install ros-melodic-effort-controllers
sudo apt-get install ros-melodic-joint-state-controller
sudo apt-get install ros-melodic-ackermann-msgs
sudo apt-get install ros-melodic-global-planner
sudo apt-get install ros-melodic-teb-local-planner
运行
sudo apt-get install ros--melodic-gazebo-ros-control
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package ros—melodic-gazebo-ros-control
sudo apt update
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
/etc/apt/sources.list.d/ros-latest.list
文件中。具体来说,这个命令会在文件中写入一行,指定了ROS软件包的APT存储库地址。
E: The repository 'http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu bionic Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
这个错误的意思就是说这个仓库不维护了。所以我们删掉它即可。
sudo apt-add-repository -r ppa:jonathonf/vim
即从系统中删除名为"jonathonf/vim"的PPA存储库。
cd ~/racecar_ws
catkin_make
搜索OpenCVConfig.cmake文件的路径
locate OpenCVConfig.cmake
进入相关目录编辑catkinConfig.cmake文件
sudo dedit catkinConfig.cmake
在find _package前面添加如下内容
set(OpenCV_DIR /usr/share/OpenCV)
mango@mango-virtual-machine:~/racecar_ws$ catkin_make
Base path: /home/hjx/racecar_ws
Source space: /home/hjx/racecar_ws/src
Build space: /home/hjx/racecar_ws/build
Devel space: /home/hjx/racecar_ws/devel
Install space: /home/hjx/racecar_ws/install
####
#### Running command: "make cmake_check_build_system" in "/home/hjx/racecar_ws/build"
####
####
#### Running command: "make -j1 -l1" in "/home/hjx/racecar_ws/build"
####
[ 5%] Built target serial
[ 8%] Built target serial_example
[ 8%] Built target _ackermann_msgs_generate_messages_check_deps_AckermannDriveStamped
[ 8%] Built target std_msgs_generate_messages_py
[ 8%] Built target _ackermann_msgs_generate_messages_check_deps_AckermannDrive
[ 12%] Built target ackermann_msgs_generate_messages_py
[ 12%] Built target std_msgs_generate_messages_lisp
echo "source ~/racecar_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
source ~/racecar_ws/devel/setup.bash
这一行命令追加到~/.bashrc
文件中。setup.bash
文件是ROS工作空间的配置文件,这个命令会确保每次启动终端时都会加载ROS工作空间。
~/.bashrc
文件,以便终端会话可以访问ROS工作空间的配置。
roslaunch racecar_gazebo racecar.launch