linorobot机器人-自动生成-不可用

这篇具有很好参考价值的文章主要介绍了linorobot机器人-自动生成-不可用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

好像还是比较混乱。

具体信息参考其官网。

https://linorobot.org/

Linorobot是一套开源的ROS兼容机器人,旨在为学生、开发者和研究人员提供一个低成本的平台,以便在ROS(机器人操作系统)的基础上创建新的激动人心的应用。Linorobot支持可从零开始构建的不同机器人底盘,包括2WD、4WD、Mecanum Drive和Ackermann Steering。

linorobot是一个用于学习和分享机器人技术知识的社区。在这里,用户可以学习如何从零起步构建机器人,包括机器人的模型、SLAM和导航等方面。

linorobot主要支持的机器人包括ROS2的G/F版本所支持的turtlebot3和即将发布的turtlebot4。其中,turtlebot4+树莓派4+ROS2专属机器人是一个比较流行的组合。

如果您想要学习机器人技术,linorobot是一个非常不错的选择。您可以参考社区中提供的教程和示例代码,从零开始构建自己的机器人,并与其他志同道合的爱好者交流学习。

支持ROS1和ROS2,以及多种运动学模型。

linorobot机器人-自动生成-不可用,机器人

源码:

linorobot机器人-自动生成-不可用,机器人 

 

#!/usr/bin/env bash
# Copyright (c) 2021 Juan Miguel Jimeno
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http:#www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

set -e

ROSDISTRO="$(printenv ROS_DISTRO)"
BASE=$1
LASER_SENSOR=$2
DEPTH_SENSOR=$3
ARCH="$(uname -m)"
WORKSPACE="$HOME/linorobot2_ws"

ROBOT_TYPE_ARRAY=(2wd 4wd mecanum)
DEPTH_SENSOR_ARRAY=(realsense zed zedm zed2 zed2i)
LASER_SENSOR_ARRAY=(rplidar ldlidar ydlidar xv11)
LASER_SENSOR_ARRAY+=(${DEPTH_SENSOR_ARRAY[@]})

if [ -z "$LASER_SENSOR" ]
    then
        LASER_SENSOR=""
fi

if [ -z "$DEPTH_SENSOR" ]
    then
        DEPTH_SENSOR=""
fi

function install_cuda_jetson {
    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/sbsa/cuda-ubuntu2004.pin
    sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
    wget http://developer.download.nvidia.com/compute/cuda/11.4.2/local_installers/cuda-repo-ubuntu2004-11-4-local_11.4.2-470.57.02-1_arm64.deb
    sudo dpkg -i cuda-repo-ubuntu2004-11-4-local_11.4.2-470.57.02-1_arm64.deb
    sudo apt-key add /var/cuda-repo-ubuntu2004-11-4-local/7fa2af80.pub #verify this
    sudo apt-get update
    sudo apt-get -y install cuda
    # Errors were encountered while processing:
    #  /tmp/apt-dpkg-install-TvUCLd/14-libnvidia-compute-470_470.57.02-0ubuntu1_arm64.deb
    #  /tmp/apt-dpkg-install-TvUCLd/18-libnvidia-gl-470_470.57.02-0ubuntu1_arm64.deb
    # E: Sub-process /usr/bin/dpkg returned an error code (1)
}

function install_xv11 {
    cd $WORKSPACE
    git clone https://github.com/mjstn/xv_11_driver src/xv_11_driver
    colcon build
    source $WORKSPACE/install/setup.bash
}

function install_rplidar {
    sudo apt install -y ros-$ROS_DISTRO-rplidar-ros
    cd /tmp
    wget https://raw.githubusercontent.com/allenh1/rplidar_ros/ros2/scripts/rplidar.rules
    sudo cp rplidar.rules /etc/udev/rules.d/
}

function install_ldlidar {
    cd $WORKSPACE
    git clone https://github.com/linorobot/ldlidar src/ldlidar
    sudo cp src/ldlidar/ldlidar.rules /etc/udev/rules.d/
    colcon build
    source $WORKSPACE/install/setup.bash
}

function install_ydlidar {
    cd /tmp
    git clone https://github.com/YDLIDAR/YDLidar-SDK.git
    mkdir YDLidar-SDK/build
    cd YDLidar-SDK/build
    cmake ..
    make
    sudo make install
    cd $WORKSPACE
    git clone https://github.com/YDLIDAR/ydlidar_ros2_driver src/ydlidar_ros2_driver
    chmod 0777 src/ydlidar_ros2_driver/startup/*
    sudo echo  'KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE:="0666", GROUP:="dialout",  SYMLINK+="ydlidar"' >/etc/udev/rules.d/ydlidar.rules
    sudo echo  'KERNEL=="ttyACM*", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", MODE:="0666", GROUP:="dialout",  SYMLINK+="ydlidar"' >/etc/udev/rules.d/ydlidar-V2.rules
    sudo echo  'KERNEL=="ttyUSB*", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", MODE:="0666", GROUP:="dialout",  SYMLINK+="ydlidar"' >/etc/udev/rules.d/ydlidar-2303.rules
    colcon build --symlink-install
    source $WORKSPACE/install/setup.bash
}

function install_realsense {
    sudo apt install -y ros-$ROS_DISTRO-realsense2-camera
    cd /tmp
    wget https://raw.githubusercontent.com/IntelRealSense/librealsense/master/config/99-realsense-libusb.rules
    sudo cp 99-realsense-libusb.rules /etc/udev/rules.d
}

function install_astra {
    cd $WORKSPACE
    sudo apt install -y libuvc-dev libopenni2-dev
    git clone https://github.com/linorobot/ros_astra_camera src/ros_astra_camera
    sudo cp src/ros_astra_camera/56-orbbec-usb.rules /etc/udev/rules.d/
    colcon build
    source $WORKSPACE/install/setup.bash
}

function install_zed {
    cd /tmp
    if [[ -f /etc/nv_tegra_release ]]
        then
            #TODO ADD CUDA INSTALLATION HERE
            wget https://download.stereolabs.com/zedsdk/3.5/jp45/jetsons -O zed_sdk
    elif lspci | grep VGA | grep -o NVIDIA
        then
            wget https://download.stereolabs.com/zedsdk/3.5/cu111/ubuntu20 -O zed_sdk
    else
        echo "Linux Machine not supported by Zed Camera"
        exit 1
    fi
    
    chmod +x zed_sdk
    ./zed_sdk -- silent
    cd $WORKSPACE
    
    git clone https://github.com/stereolabs/zed-ros2-wrapper src/zed-ros2-wrapper
    git clone https://github.com/ros-perception/image_common -b $ROS_DISTRO src/image_common #https://github.com/stereolabs/zed-ros2-wrapper#image-transport-and-topic-subscriptions
    rosdep install --from-paths src --ignore-src -r -y
    colcon build --symlink-install --cmake-args=-DCMAKE_BUILD_TYPE=Release
    # colcon build --symlink-install --cmake-args=-DCMAKE_BUILD_TYPE=Release --cmake-args=-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-11.4
    source $WORKSPACE/install/setup.bash
    source ~/.bashrc
}

function install_zedm {
    install_zed
}

function install_zed2 {
    install_zed
}

function install_zed2i {
    install_zed
}

if [[ "$ROSDISTRO" == "" || "$ROSDISTRO" == "<unknown>" ]]
    then
        echo "No ROS2 distro detected"
        echo "Try running $ source /opt/ros/<ros_distro>/setup.bash and try again."
        exit 1
fi

if [ "$*" == "" ]
    then
        echo "No arguments provided"
        echo
        echo "Example: $ bash install_linorobot2.bash 2wd rplidar"
        echo "Example: $ bash install_linorobot2.bash 2wd rplidar realsense"
        echo "Example: $ bash install_linorobot2.bash 2wd - realsense"
        echo "Example: $ bash install_linorobot2.bash 2wd"

        echo
        exit 1
fi
        
if [[ "$BASE" != "ci" ]] && !(printf '%s\n' "${ROBOT_TYPE_ARRAY[@]}" | grep -xq $BASE)
    then
        echo "Invalid linorobot base: $1"
        echo
        echo "Valid Options:"
        for key in "${!ROBOT_TYPE_ARRAY[@]}"; do echo "${ROBOT_TYPE_ARRAY[$key]}"; done
        echo
        exit 1
fi

if [[ "$BASE" != "ci" && "$LASER_SENSOR" != "" && "$LASER_SENSOR" != "-" ]] && !(printf '%s\n' "${LASER_SENSOR_ARRAY[@]}" | grep -xq $LASER_SENSOR)
    then
        echo "Invalid linorobot2 laser sensor: $LASER_SENSOR"
        echo
        echo "Valid Options:"
        for key in "${!LASER_SENSOR_ARRAY[@]}"; do echo "${LASER_SENSOR_ARRAY[$key]}"; done
        echo
        exit 1
fi

if [[ "$BASE" != "ci" && "$DEPTH_SENSOR" != "" ]] && !(printf '%s\n' "${DEPTH_SENSOR_ARRAY[@]}" | grep -xq $DEPTH_SENSOR)
    then
        echo "Invalid linorobot2 depth sensor: $DEPTH_SENSOR"
        echo
        echo "Valid Options:"
        for key in "${!DEPTH_SENSOR_ARRAY[@]}"; do echo "${DEPTH_SENSOR_ARRAY[$key]}"; done
        echo
        exit 1
fi

if [[ "$BASE" != "ci" ]]
    then
        echo
        echo "You are installing linorobot2 on your robot computer."
        echo
        echo "===========SUMMARY============"
        echo "ROBOT TYPE   : $BASE"
        echo "LASER SENSOR : $LASER_SENSOR"
        echo "DEPTH SENSOR : $DEPTH_SENSOR"
        echo
        echo "This installer will edit your ~/.bashrc."
        echo "Create a linorobot2_ws on your $HOME directory."
        echo "Install linorobot2 ROS2 dependencies."
        echo "Install udev rules on /etc/udev/rules.d folder."
        echo -n "Enter [y] to continue. " 
        read reply
        if [[ "$reply" != "y" && "$reply" != "Y" ]]
            then
                echo "Exiting now."
                exit 1
        fi
fi

echo
echo "INSTALLING NOW...."
echo

#### 1.1 Source your ROS2 distro and workspace
cd $HOME
mkdir -p $WORKSPACE/src
source /opt/ros/$ROS_DISTRO/setup.bash
cd $WORKSPACE
colcon build
source $WORKSPACE/install/setup.bash

#### 1.2/1.3 Install LIDAR/Depth Sensor ROS2 drivers:
if (printf '%s\n' "${LASER_SENSOR_ARRAY[@]}" | grep -xq $LASER_SENSOR)
    then
        install_$LASER_SENSOR
fi

if (printf '%s\n' "${DEPTH_SENSOR_ARRAY[@]}" | grep -xq $DEPTH_SENSOR)
    then
        install_$DEPTH_SENSOR
fi

if [[ "$BASE" == "ci" ]]
    then
        for key in "${!LASER_SENSOR_ARRAY[@]}"; do  install_${LASER_SENSOR_ARRAY[$key]}; done
fi

#### 1.4 Download and install micro-ROS:
cd $WORKSPACE
git clone -b $ROS_DISTRO https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup
sudo apt install -y python3-vcstool build-essential
sudo apt update && rosdep update
rosdep install --from-path src --ignore-src -y
colcon build
source $WORKSPACE/install/setup.bash

#### 1.5 Setup micro-ROS agent:
ros2 run micro_ros_setup create_agent_ws.sh
ros2 run micro_ros_setup build_agent.sh
source $WORKSPACE/install/setup.bash

#### 2.1 Download linorobot2:
cd $WORKSPACE
git clone -b $ROS_DISTRO https://github.com/linorobot/linorobot2 src/linorobot2

#### 2.2 Ignore Gazebo Packages on robot computer (optional)
cd $WORKSPACE/src/linorobot2/linorobot2_gazebo
touch COLCON_IGNORE

#### 2.3 Install linorobot2 package:
cd $WORKSPACE
rosdep update && rosdep install --from-path src --ignore-src -y --skip-keys microxrcedds_agent
colcon build
source $WORKSPACE/install/setup.bash

## ENV Variables
if [[ "$BASE" != "ci" ]]
    then
        ### 1. Robot Type
        echo "export LINOROBOT2_BASE=$BASE" >> ~/.bashrc
        ### 2. Sensors
        if [[ "$LASER_SENSOR" != "-" ||  "$LASER_SENSOR" != "" ]]
            then
                echo "export LINOROBOT2_LASER_SENSOR=$LASER_SENSOR" >> ~/.bashrc
        fi

        if [[ "$DEPTH_SENSOR" != "-" ||  "$DEPTH_SENSOR" != "" ]]
            then
            echo "export LINOROBOT2_DEPTH_SENSOR=$DEPTH_SENSOR" >> ~/.bashrc
        fi
        echo
        echo "Do you want to add sourcing of linorobot2_ws on your ~/.bashrc?"
        echo -n "Yes [y] or No [n]: " 
        read reply
        if [[ "$reply" == "y" || "$reply" == "Y" ]]
            then
                echo "source \$HOME/linorobot2_ws/install/setup.bash" >> ~/.bashrc
        else
            echo
            echo "Remember to run $ source ~/linorobot2_ws/install/setup.bash every time you open a terminal."
        fi
fi

echo
echo "INSTALLATION DONE."
echo
echo "Restart your robot computer now."

Linorobot机器人的配置可以通过以下步骤完成:

  1. 首先,确保已经安装了ROS2。你可以参考官方文档或者社区资源来获取安装指导。

  2. 接着,选择一款支持的机器人,如turtlebot3或即将发布的turtlebot4。

  3. 如果你是从零开始学习机器人技术,可以参考linorobot2的示例代码进行学习。

  4. 在终端中,输入以下命令安装linorobot2软件包:

 

shell复制代码

sudo apt install ros-noetic
  1. 如果你想从零开始学习机器人技术,可以继续安装其他软件包:

 

shell复制代码

sudo apt install ros-galactic
sudo apt install ros-foxy
  1. 完成软件包的安装后,你可以使用ROS命令行工具进行机器人配置。例如,使用以下命令启动linorobot2的示例节点:

 

shell复制代码

ros2 launch linorobot2 linorobot2_bringup.launch
  1. 如果你想学习机器人模型、SLAM或导航等方面的知识,可以参考linorobot2的示例代码进行学习。
  2. 最后,你可以通过ROS命令行工具来控制机器人,如移动、打开传感器等。

希望以上步骤能够帮助你完成Linorobot机器人的配置。

Linorobot机器人的使用需要通过以下步骤完成:

  1. 配置机器人。确保已正确安装ROS2,并选择一款支持的机器人,如turtlebot3或即将发布的turtlebot4。

  2. 启动linorobot2的示例节点。在终端中输入以下命令:

 

shell复制代码

ros2 launch linorobot2 linorobot2_bringup.launch
  1. 控制机器人。你可以使用ROS命令行工具来控制机器人,如移动、打开传感器等。例如,使用以下命令使机器人前进:

 

复制代码

ros2 action liblinorobot_action/linorobot_move/MoveAction
  1. 如果你想学习机器人模型、SLAM或导航等方面的知识,可以参考linorobot2的示例代码进行学习。

希望以上步骤能够帮助你使用Linorobot机器人。文章来源地址https://www.toymoban.com/news/detail-605037.html

到了这里,关于linorobot机器人-自动生成-不可用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器人制作开源方案 | 全自动导航分拣机器人

    作者:孙国峰 董阳 张鑫源 单位:山东科技大学 机械电子工程学院 指导老师:张永超 贝广霞 1.1 研究背景       在工业生产中,机器人在解决企业的劳动力不足,提高企业劳动生产率,提高产品质量和降低生产成本方面有着显著的意义。随着计算机自动化技术和社会的发展

    2024年01月23日
    浏览(58)
  • 机器人制作开源方案 | 乒乓球自动拾取机器人

    作者:刘众森、王森、王绘东、崔岳震、宋维鑫 单位:山东农业工程学院 指导老师:潘莹月、廖希杰       我们小组选择项目的任务方向乒乓球的捡取与存放,针对此问题我们研发了一款乒乓球自动拾取机器人。众所周知,乒乓球是一种世界流行的球类体育项目,而我国是

    2024年02月01日
    浏览(51)
  • transformers生成式对话机器人

    生成式对话机器人是一种人工智能技术,它通过学习大量自然语言数据,模拟人类进行开放、连贯和创造性的对话。这种类型的对话系统并不局限于预定义的回答集,而是能够根据上下文动态生成新的回复内容。其核心组件和技术包括: 1、神经网络架构:现代生成式对话机

    2024年03月10日
    浏览(57)
  • RPA自动化中的机器人开发:如何开发机器人软件

    随着工业4.0时代的到来,企业对于提高生产效率、降低成本的需求越来越强烈,机器人自动化技术作为其中的一部分,逐渐被广泛应用。机器人自动化技术的其中一个分支——机器人软件,对于机器人的开发和应用具有重要的推动作用。本文旨在介绍如何进行机器人软件的开

    2024年02月13日
    浏览(57)
  • 机器人轨迹生成:轨迹规划与路径规划

    机器人轨迹生成涉及到轨迹规划和路径规划两个关键概念,它们是机器人运动控制中的重要组成部分。下面对轨迹规划和路径规划进行深入比较。 轨迹规划(Trajectory Planning): 定义:轨迹规划是指在机器人运动中确定机器人末端或关节的期望轨迹。它是在特定的工作空间中

    2024年02月12日
    浏览(55)
  • 机器人过程自动化(RPA)入门 7. 处理用户事件和助手机器人

    在UiPath中,有两种类型的Robot用于自动化任何流程。一个是后台机器人,它在后台工作。它独立工作,这意味着它不需要用户的输入或任何用户交互。另一个是前台机器人,也被称为助理机器人。 本章介绍前台机器人。在这里,我们将了解自动化过程中通过简单按键、单击鼠

    2024年02月07日
    浏览(40)
  • 【微信加人自动化】RPA机器人:人人都会实现的机器人

    用上这个机器人,一定要心平气和,不要放肆,单号忍住控制在+15个人以内(但悄悄的告诉你,可以切换账号呀) 这个加人机器人,人人都可以通过学习自己动手实现,不再局限于遥不可及的“黑科技”技术。 在这个数字化飞速发展的时代,微信已经成为我们日常生活和工

    2024年04月15日
    浏览(59)
  • 机器人&自动驾驶时间同步进阶

    之前时间同步也写过一篇文章介绍机器人自动驾驶中的时间同步。在最近的学习中发现一些额外需要阐述学习的内容,这里就再次写一些之前没写到的内容。 NTP 是网络时间协议,用来同步网络中各计算机时间的协议,把计算机的时钟同步到标准世界时间即UTC时间。NTP versio

    2024年03月28日
    浏览(47)
  • 自动化、智能、机器人-2023-

    文明:农业、工业、信息、智能,以目前认知的四个阶段。  农业文明到工业文明:机械自动化 工业文明到信息文明:电气自动化 信息文明到智能文明:数据自动化 这些时代典型的机器人: 机械自动化   电气自动化   数据自动化 这一步还没有完全实现,现在是过渡阶段。

    2024年02月08日
    浏览(47)
  • 使用Discord机器人和Midjourney构建图像生成服务

    前言         探讨如何利用Discord机器人和Midjourney工具构建一个图像生成服务,使用户能够通过发送消息来生成图像,而无需直接与Midjourney进行交互 准备工作 确保您拥有一个 Discord 账号,并能够创建一个 Discord 服务器。 注册并获取一个 Discord 机器人的令牌(Token),以便用

    2024年02月22日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包