ROS开发的自动割草机"/>
lawnmower 基于ROS开发的自动割草机
环境配置
一、安装 ROS noetic 及其附属工具(catkin、rosdep等)
- 添加ROS软件源
修改软件与更新中的配置,点击选择"restricted"、“universe” 和 “multiverse”
将以下命令复制到ubuntu的终端执行
sudo sh -c ‘echo “deb $(lsb_release
-sc) main” > /etc/apt/sources.list.d/ros-latest.list’
- 添加密钥
将以下命令复制到ubuntu的终端执行
sudo apt-key adv --keyserver ‘hkp://keyserver.ubuntu:80’
–recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
- 更新软件源
sudo apt update
等待一段时间运行成功
- 开始安装ROS
sudo apt install ros-noetic-desktop-full
等待一段时间下载完成
-
设置环境变量
进入bashrc文件添加source /opt/ros/noetic/setup.bash,也可以手动添加
echo “source /opt/ros/noetic/setup.bash” >> ~/.bashrc
source ~/.bashrc
- 安装rosinstall等工具
rosinstall 是ROS中一个独立分开的常用命令行工具, 它可以方便让你通过一条命令就可 以给某个ROS软件包下载很多源码树。 比如sudo apt install ros-noetic-…
sudo apt install python3-rosinstall python3-rosinstall-generator python3- wstool build-essential python3-roslaunch
成功
以下步骤我没有进行,[参考]()
初始化组件 rosdep :需要安装rosdep,rosdep是ROS一些核心组件的运行基础,在编译ROS源码时检查和安装程 序包依赖:sudo rosdep initrosdep update需要安装 rosdep 时,即运行 sudo rosdep init 这一步时会大部分出现失败现象,有时 候可能是网络问题,多运行几次,或者更换手机热点试试。如果还不行,可以试试:查看是否可以拼通网址raw.githubusercontentsudo gedit /etc/hosts可以的话就修改hosts文件,加入以下两个网址的IP地址实现访问:199.232.28.133 raw.githubusercontent151.101.228.133 raw.github修改完成后,再次执行:sudo rosdep initrosdep update下载完整的ROS源代码学习:mkdir ~/ros_catkin_ws/ && cd ~/ros_catkin_ws/rosinstall_generator desktop_full --rosdistro noetic --deps --tar > noetic-desktop-full.rosinstallwstool init -j8 src melodic-desktop-full.rosinstall
到这里,ROS的安装已经完成,下面就让我们来一起测试一下吧:
首先启动三个终端
终端一输入:
roscore
终端二输入:
rosrun turtlesim turtlesim_node
此时会弹出图形化界面
终端三输入:
rosrun turtlesim turtle_teleop_key
在终端三中可以通过上下左右控制二中乌龟的运动
参考:
二、创建 catkin 工作区(以下使用~/catkin_ws/),进入 src 目录
1.创建一个catkin工作区:
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_make
运行成功
可以看到目录结构如下:
三、安装 costmap_converter
git clone .git
四、安装 tf2_tools
git clone .git
五、安装 hector_navigation
克隆仓库
git clone .git
切换到noetic-devel分支
cd hector_navigation
git checkout noetic-devel
cd …
修改源码
安装完成后需要手动修改 hector_navigation/hector_exploration_planner/src/hector_exploration_planner.cpp 中的下列行:
注释第227-230行
// if (!frontiers_found){
// ROS_WARN("Close Exploration desired, but no frontiers found. Falling back to normal exploration!");
// frontiers_found = findFrontiers(goals);
// }
把第243、253行的
doInnerExploration(start,plan);
改为
return false;
六、安装 ceres_catkin
git clone .git
git clone .git
七、安装 Shapely
pip3 install shapely
八、下载本项目
九、使用 rosdep 安装其他依赖,如果有部分依赖找不到,可以上网查找安装方式
cd ~/catkin_ws/
rosdep install --from-paths src --ignore-src -r -y
编译上述依赖和本项目
catkin build
在 .bashrc 中检查以下环境变量是否都已经设置
source /opt/ros/noetic/setup.bash
source ~/catkin_ws/devel/setup.bash
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/catkin_ws/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/ros/noetic/lib/x86_64-linux-gnu
仿真
安装 turtlebot3 仿真库:/
在 .bashrc 中将 turtlebot 的型号设置为 waffle_pi
export TURTLEBOT3_MODEL=waffle_pi
启动仿真
roslaunch lawnmower lawnmower_simulation.launch
更多推荐
lawnmower 基于ROS开发的自动割草机
发布评论