虚拟机从零实现机器人控制

news/2025/2/23 14:43:54

1. 系统安装

因Docker不适合需要图形界面的开发,因此使用虚拟机VMware方便可视化界面方式查看效果,相关软件可以从官网下载,这里有一整套免费安装文件百度网盘地址:
在这里插入图片描述

2. ROS安装

Ubuntu 22.04:https://docs.ros.org/en/humble/Installation.html

sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
sudo apt update
sudo apt upgrade
sudo apt install ros-humble-desktop
sudo apt install ros-dev-tools
source /opt/ros/humble/setup.bash

在这里插入图片描述

Ubuntu 16.04:https://wiki.ros.org/kinetic/Installation/Ubuntu

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 install curl # if you haven't already installed curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install ros-kinetic-desktop-full
apt-cache search ros-kinetic
sudo rosdep init 
rosdep update
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

3. Turtlebot3安装

sudo apt update
sudo apt install -y ros-humble-turtlebot3 ros-humble-turtlebot3-simulations
sudo apt install python3-colcon-common-extensions ros-humble-gazebo-ros-pkgs
export TURTLEBOT3_MODEL=burger
ros2 launch turtlebot3_gazebo empty_world.launch.py

# 新终端
source /opt/ros/humble/setup.bash
export TURTLEBOT3_MODEL=burger
ros2 run turtlebot3_teleop teleop_keyboard

在这里插入图片描述
在这里插入图片描述
看到蓝色(机器人激光)区域在缓慢向上移动,经过几分钟到工作区外了。
在这里插入图片描述

在这里插入图片描述


http://www.niftyadmin.cn/n/5863489.html

相关文章

python-leetcode-两两交换链表中的节点

24. 两两交换链表中的节点 - 力扣(LeetCode) # Definition for singly-linked list. # class ListNode: # def __init__(self, val0, nextNone): # self.val val # self.next next class Solution:def swapPairs(self, head: Opti…

ai-financial-agent - 为金融投资打造的AI代理

探索人工智能在投资研究中的应用。本项目仅用于**教育**目的,不用于真实交易或投资。 作者声明: 本项目仅用于教育和研究目的。 不用于真实交易或投资不提供任何保证或担保过去的表现并不代表未来的结果Creator 对经济损失不承担任何责任咨询财务顾问…

c++中sleep是什么意思(不是Sleep() )

sleep 函数在 C 语言中用于暂停程序执行指定的秒数,语法为 sleep(unsigned int seconds)。当 seconds 为 0 时,函数立即返回,否则函数将使进程暂停指定的秒数,并返回实际暂停的时间。 sleep 函数在 C 中的含义 sleep 函数是 C 标…

WinSCP 连接到 Ubuntu 虚拟机

要使用 WinSCP 连接到 Ubuntu 虚拟机,一般采用 SFTP 或 SCP 协议进行文件传输。以下是详细步骤: 1. 确保虚拟机网络可访问 首先,你的 Ubuntu 虚拟机需要允许外部访问: 如果使用 NAT 网络:需要设置端口转发&#xff0…

<02.22>Leetcode100

滑动窗口要求是我们的窗口大小和对应的窗口序列和需要是单调增的,换个话说就是元素的正负是一致的,我right之后序列和变大,left--之后序列和变小。 import java.io.*; import java.util.*; /* 输入 abcabcbb*/ public class Main {public sta…

[ Vim ] 常用命令 and 配置

Vim 指导 Vim常用命令&配置1 Command1.1 copy & paste1.2 syntax highlight 2 Configuration Vim常用命令&配置 1 Command 1.1 copy & paste copy: yy or yy[n] paste: p 1.2 syntax highlight vim 命令行::colorscheme [xxx] 2 Configuratio…

常用设计模式(embeded Qt)

常用设计模式: 观察者模式(Observer Pattern) 应用场景:传感器数据更新、UI状态同步。实现方式:通过QT的信号槽机制(本质是发布-订阅模式)自动实现。例如:connect(sensor, &Sens…

SpringBoot 如何统一 API 响应格式

一、为什么要统一 在真实项目开发中,你是否遇到过这些问题? 前端需要为不同接口编写差异化处理逻辑错误信息格式五花八门,定位问题困难全局异常处理缺失导致敏感信息泄露 在前后端分离架构中,统一的 API 响应格式是提升协作效率…