MATLAB与ROS联合仿真——ROS环境搭建及相关准备工作(上)

本篇文章主要介绍在安装完ROS后,在进行MATLAB与ROS联合仿真之前,需要进行的一些环境搭建以及准备工作,主要分为 创建ROS工作空间及功能包、必备功能包安装、安装Gazebo11、导入实验功能包至工作空间、安装Visual_Studio_Code(选做)、常用便捷工具安装(选做) 六部分。

本部分内容共分为上下两篇,上篇包括创建ROS工作空间及功能包和必备功能包安装这两部分,下篇包括、安装Gazebo11、导入实验功能包至工作空间、安装Visual_Studio_Code(选做)、常用便捷工具安装(选做)这四部分。



第一部分 创建ROS工作空间及功能包

1、工作空间用来存放工程的文件,里面的src文件夹是用来存放功能包的,功能包的配置文件等,build文件夹用来存放编译过程中产生的一些中间文件,devel文件夹存放编译生成的一些可执行文件,一些库,一些脚本等,install文件夹主要用来存放安装的一些文件。

2、创建工作空间:

(1)在主文件夹下用mkdir命令创建一个子文件夹,取名为catkin_ws ,这个名字是可以自己起的(为后续代码移植方便,建议不要修改名字),后面的src是不能变的,接下来要利用命令cd进入到该文件夹下,然后用catkin_init_workspace命令将该文件夹变为ros工作空间的属性

初次接触时,也许你并不理解以上这段话,你只需要按顺序执行下面三条指令就可以了

cpp 复制代码
mkdir -p ~/catkin_ws/src
cpp 复制代码
cd ~/catkin_ws/src
cpp 复制代码
catkin_init_workspace

(2)创建完工作空间后,要对工作空间进行编译,编译时需要在工作空间的根目录下进行编译,也就是我们需要先进入catkin_ws文件夹下,再利用catkin_make命令对其进行编译,这个命令会编译src下面所有功能包的源码,并将结果放到devel文件夹下,编译后生成了build和devel这两个文件夹,这个命令不能生成install文件夹,需要用catkin_make install命令来生成install文件夹

以上这段话,同样对应三条指令,只需要按顺序执行下面三条指令就可以了

cpp 复制代码
cd ~/catkin_ws/
cpp 复制代码
catkin_make
cpp 复制代码
catkin_make install

(3)为了让系统找到我们的工作空间,还需要设置环境变量,执行以下语句:

cpp 复制代码
source devel/setup.bash

(4)设置环境变量之后,输入以下指令去检查一下

cpp 复制代码
echo $ROS_PACKAGE_PATH

3、到这里工作空间就创建完成了,为方便后续的开发,这里可以多做一步操作,当我们改变工作空间里的内容之后,都需要使用catkin_make命令来编译,编译完成后接下来就是利用命令source devel/setup.bash去设置环境变量,为了不在每次运行时都去设置环境变量,可以将该语句添加到主文件下的.bashrc文件中,该文件是隐藏文件,在主文件夹下,需要按ctrl+h才能显示出来,打开后,在最后添加source devel/setup.bash ,添加时候需要修改一下路径改成该工作空间下的路径,比如我应该添加的是source /home/jzx/catkin_ws/devel/ setup.bash 重新启动终端生效,有了这一步操作后,就不用每次都运行source devel/setup.bash了,而且可以在任意路径下运行rosrun命令

4、创建功能包(选做)

在创建代码的时候一定要创建一个功能包,功能包是ROS里面放置源码的最小单元,所有的源码必须放到功能包下面,不允许直接放在src文件夹下,用catkin_create_pkg命令创建功能包,后面跟的第一个参数是功能包的名字,后面的参数是这个功能包的依赖,也就是这个功能包需要用到ros里面的那些其他的功能包,因为要用c++编程所以要添加依赖roscpp,因为要用Python编程,所以要添加依赖rospy ,标准的消息结构std_msgs ,创建的功能包要放在src文件夹下,添加完功能包后,我们返回到catkin_ws目录下,再对工作空间进行编译,就会把刚才添加的功能包也编译了。只有设置了环境变量后才能让系统找到我们的工作空间 ,用命令echo $ROS_PACKAGE_PATH来检查我们创建的环境变量

上面那段话是帮助大家理解的,操作的的话,只需要按顺序输入以下指令就可以了(功能包的名字可以任取)

cpp 复制代码
cd ~/catkin_ws/src
cpp 复制代码
catkin_create_pkg test_pkg std_msgs rospy roscpp
cpp 复制代码
cd ~/catkin_ws
cpp 复制代码
catkin_make
cpp 复制代码
source ~/catkin_ws/devel/setup.bash

在创建的功能包test_pkg中有一个src文件夹,用来放置功能包的代码,比如cpp文件等,include文件夹可以用来存放头文件,另外两个文件是每个功能包必须存在的两个文件,这两个文件的存在才标志着,这个文件夹是一个功能包,而不是普通文件夹



第二部分 必备功能包安装

1、安装JAVA环境:

(1)输入以下指令安装JAVA环境:

cpp 复制代码
sudo apt update
cpp 复制代码
sudo apt install openjdk-11-jdk

(2)如果你需要安装其他版本的,将上面的版本11改成对应的数字就行了,比如说版本8,就改为sudo apt install openjdk-8-jdk 指令java -version可以查看 Java 版本

(3)以下指令可以查看JAVA的安装路径

cpp 复制代码
sudo update-alternatives --config java

(4)通过下面第一条指令,可以打开环境设置文件,在文件的最后添加下面的第二条指令,可以设置 JAVA_HOME 指定到 OpenJDK 11

cpp 复制代码
sudo nano /etc/environment
cpp 复制代码
 JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"

(5)执行以下指令使其生效

cpp 复制代码
source /etc/environment

2、安装32位运行库:

输入以下指令,安装:

cpp 复制代码
sudo apt-get install lib32z1

3、安装effort_controllers

输入以下指令,安装:

cpp 复制代码
sudo apt-get install ros-noetic-effort-controllers

4、安装python3.8

(1)可运行以下指令安装 :

cpp 复制代码
sudo apt-get install python3.8

(2) 设置软连接,依次输入以下指令进行设置

cpp 复制代码
whereis python3.8
cpp 复制代码
cd /usr/bin
cpp 复制代码
sudo ln -s /usr/bin/python3.8 python

5、安装ackermann-msgs

可运行以下指令安装 :

cpp 复制代码
sudo apt install ros-noetic-ackermann-msgs

6、安装net-tools

可运行以下指令安装 :

cpp 复制代码
sudo apt install net-tools

7、安装 map-server功能包

可运行以下指令安装 :

cpp 复制代码
sudo apt-get install ros-noetic-map-server

8、安装teb_local_planner功能包

可运行以下指令安装 :

cpp 复制代码
sudo apt install ros-noetic-teb-local-planner
cpp 复制代码
sudo apt install ros-noetic-teb-local-planner-dbgsym

9、安装move-base功能包

可运行以下指令安装 :

cpp 复制代码
sudo apt install ros-noetic-move-base

10、安装navigation功能包

可运行以下指令安装 :

cpp 复制代码
sudo apt install ros-noetic-navigation

11、安装gmapping功能包

cpp 复制代码
roslaunch bringup slam_gmapping.launch
相关推荐
Halo咯咯3 分钟前
无限免费 OpenClaw:接入本地模型后,你的 AI Agent 就可以 24 小时自动干活(Mac Mini 可用)
人工智能
NAGNIP12 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab13 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab13 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP17 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年17 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼17 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS17 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区18 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈19 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能