ROS连接ABB机械臂调试详细教程-ROS(indigo)和ABB RobotStudio 6.03.02-

69 篇文章 55 订阅
订阅专栏
55 篇文章 136 订阅
订阅专栏

在ROS industrial介绍中,给出了ROS和常用机械臂的连接方式。具体信息可以参考:http://wiki.ros.org/Industrial

ROS连接ABB机械臂调试详细教程-ROS(indigo)和ABB RobotStudio 6.03.02-

补充: https://github.com/robotics/open_abb

open-abb-driver

Control ABB robots remotely with ROS, Python, or C++

What is it?

open-abb-driver consists of two main parts. The first is a program which is written in the ABB robot control language, RAPID, which allows remote clients to send requests for actions (such as joint moves, cartesian moves, speed changes, etc.). The second is a series of libraries to interact with the robot from remote computers, using several different control schemes. You can use the ROS driver, which allows control using ROS services and publishers. You can also include the Python or C++ libraries to communicate with the robot directly (both located in abb_node/packages/abb_comm), and bypass ROS completely.

Requirements

  • ABB IRC5 controller
  • 6 DOF robotic manipulator
  • Robot must have the following factory software options
    • "PC Interface"
    • "Multitasking" (required for position feedback stream)

Quick Start

Robot Setup

  • Install the RAPID module 'SERVER'
    • Using RobotStudio online mode is the easiest way to do this, check out the wiki article for details.
  • For position feedback, install the RAPID module 'LOGGER' into another task.
  • In SERVER.mod, check to make sure the "ipController" specified is the same as your robot. The default robot IP is 192.168.125.1
  • Start the programs on the robot
    • Production Window->PP to Main, then press the play button.

Computer Setup

  • Verify that your computer is on the same subnet as the robot.
    • Try pinging the robot (default IP is 192.168.125.1).
  • Before trying ROS, it's pretty easy to check functionality using the simple python interface.
    • Note that you must either copy abb_node/packages/abb_comm/abb.py to your local directory or somewhere included in your PYTHONPATH environment.
  • To set up the ROS node (Fuerte only at the moment), copy abb_node to somewhere in your $ROS_PACKAGE_PATH.
    • If you did that correctly, try:

      roscd abb_node
      rosmake abb_node
      roslaunch abb_node abb_tf.launch
      

调试视频链接: http://v.youku.com/v_show/id_XMTc0MzUxNDU4OA


 

ROS官网给出了一些示例,可以移植应用(120 120t 4400 2400 5400 6600 6640),参考网址:
1 http://wiki.ros.org/abb
2 https://github.com/ros-industrial/abb
3 https://github.com/ros-industrial/abb_experimental

 

下面详细介绍,如何用ROS中MoveIt!规划并控制ABB RobotStudio中机械臂的运动。

MoveIt!: http://moveit.ros.org/

ABB RobotStudio: http://blog.csdn.net/ZhangRelay/article/details/51177098

----官方教程分为3个小节----

 

The following tutorials are provided to demonstrate installation and operation of an  ABB robot using the ROS Industrial interfaces:

 

  1. Installing the ABB ROS Server

    This tutorial walks through the steps of installing the ROS server code on the ABB robot controller and configuring the required controller settings.

  2. Running the ROS Server

    This tutorial describes how to run the ABB ROS Server, so the robot will execute motion commands sent from the ROS client node.

 

The following tutorials show how to use the ABB Robot Studio with the driver:

  1. Using Simulated Robot in Robot Studio
    This tutorial describes how to setup the ABB RobotStudio simulator for use with the ROS-Industrial driver.

 

分别为:安装ABB ROS服务器,运行ROS 服务器和在RobotStudio中使用仿真机器人,这里以仿真机器人为例,

 

当然配置完成后就可以控制真实机械臂运动了。

A 在RobotStudio中使用仿真机器人

通过使用仿真机械臂替代真实机械臂,可以在ROS和ABB机械臂进行通信仿真。这种情况下,通常有两台PC,

一台运行windows及ABB机械臂,winpc;另一台运行ubuntu和ROS,rospc。

1 需要熟悉ABB RobotStudio使用
1.1 新建一个空工作站解决方案:

1.2 在ABB模型库中选择一款机械臂,这里以IRB120_3_58__01为例:

1.3 选择机器人系统,点击从布局:

1.4 点击下一步,出现下面界面,点击选项:

1.5 通过过滤器快速添加616-1 PC interface 623-1 Multitasking后,点击完成:

2 安装RAPID文件

2.1 到创建的文档\RobotStudio\Systems下选择对应的工作站
2.2 打开,新建ROS文件夹,并复制\abb_driver\rapid到其中(下载地址 https://github.com/ros-industrial/abb):

2.3 查看目前winpc的IP地址,并写入到ROS_socket.sys中对应处,如下:

 

3 选择控制器,配置示教器:

在配置中,为了使用方便先将语言设置为中文:

配置到手动模式,就可以进行下一步,安装ROS服务器。

 

B 安装ROS服务器

必须具备的组件清单:

Multitasking (623-1) -- for parallel socket communications
Socket Messaging (672-1) -- for communications with a ROS PC
for recent RobotWare versions, this option is included with "PC Interface (616-1)"
RobotWare OS >= 5.13 -- for required socket options
earlier versions may work, but will require modifications to the RAPID code

如果不全,仿真没有问题,但无法控制实际机器人。

之前,已经将代码文件复制到相应文件夹下了,如(e.g. /<system>/HOME/ROS/*)。

进行下一步操作。

1 配置控制器

这里文件说明如下:

Shared by all tasks
ROS_common.sys -- Global variables and data types shared by all files
ROS_socket.sys -- Socket handling and simple_message implementation
ROS_messages.sys -- Implementation of specific message types
Specific task modules
ROS_stateServer.mod -- Broadcast joint position and state data
ROS_motionServer.mod -- Receive robot motion commands
ROS_motion.mod -- Issues motion commands to the robot

1.1 创建任务

在ABB--控制器--配置编辑器--Controller--Task:

Create 3 tasks as follows:

Name

Type

Trust Level

Entry

Motion Task

ROS_StateServer

SEMISTATIC

NoSafety

main

NO

ROS_MotionServer

SEMISTATIC

SysStop

main

NO

T_ROB1

NORMAL

 

main

YES

It is easiest to wait until all configuration tasks are completed before rebooting the controller.

 

NOTES:

  1. The T_ROB1 motion task probably already exists on your controller.

  2. If T_ROB1 has existing motion-control modules, you may need to rename the main() routine in ROS_Motion.mod to ROS_main(). In this case, set the Entry point for T_ROB1 task to ROS_main().

  3. For multi-robot controllers, specify the desired robot (e.g. rob1) for each task

  4. SEMISTATIC tasks will auto-start when controller is booted. They are visible, but cannot be easily seen for troubleshooting. For debug or development purposes, it may be desired to set both ROS_*Server tasks to Type=NORMAL.

 

1.2 加载模块到任务

在ABB--控制器--配置编辑器--Controller--Automatic Loading of Modules:

File

Task

Installed

All Tasks

Hidden

HOME:/ROS/ROS_common.sys

 

NO

YES

NO

HOME:/ROS/ROS_socket.sys

 

NO

YES

NO

HOME:/ROS/ROS_messages.sys

 

NO

YES

NO

HOME:/ROS/ROS_stateServer.mod

ROS_StateServer

NO

NO

NO

HOME:/ROS/ROS_motionServer.mod

ROS_MotionServer

NO

NO

NO

HOME:/ROS/ROS_motion.mod

T_ROB1

NO

NO

NO

 

 

 

添加完成后如下所示:

然后,重启控制器,应用更改。

1.3 更新

在控制器--重启中选择合适模式进行重启,完成后可以看到如下:

如果IP错误:

 

设置正确IP后,显示:

补充RAPID:

ROS_motionServer:

 

MODULE ROS_motionServer

! Software License Agreement (BSD License)
!
! Copyright (c) 2012, Edward Venator, Case Western Reserve University
! Copyright (c) 2012, Jeremy Zoss, Southwest Research Institute
! All rights reserved.
!
! Redistribution and use in source and binary forms, with or without modification,
! are permitted provided that the following conditions are met:
!
!   Redistributions of source code must retain the above copyright notice, this
!       list of conditions and the following disclaimer.
!   Redistributions in binary form must reproduce the above copyright notice, this
!       list of conditions and the following disclaimer in the documentation
!       and/or other materials provided with the distribution.
!   Neither the name of the Case Western Reserve University nor the names of its contributors
!       may be used to endorse or promote products derived from this software without
!       specific prior written permission.
!
! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
! EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
! OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
! SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
! INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
! TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
! BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
! WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

LOCAL CONST num server_port := 11000;

LOCAL VAR socketdev server_socket;
LOCAL VAR socketdev client_socket;
LOCAL VAR ROS_joint_trajectory_pt trajectory{MAX_TRAJ_LENGTH};
LOCAL VAR num trajectory_size;

PROC main()
    VAR ROS_msg_joint_traj_pt message;

    TPWrite "MotionServer: Waiting for connection.";
	ROS_init_socket server_socket, server_port;
    ROS_wait_for_client server_socket, client_socket;

    WHILE ( true ) DO
		! Recieve Joint Trajectory Pt Message
        ROS_receive_msg_joint_traj_pt client_socket, message;
		trajectory_pt_callback message;
	ENDWHILE

ERROR (ERR_SOCK_TIMEOUT, ERR_SOCK_CLOSED)
	IF (ERRNO=ERR_SOCK_TIMEOUT) OR (ERRNO=ERR_SOCK_CLOSED) THEN
        SkipWarn;  ! TBD: include this error data in the message logged below?
        ErrWrite \W, "ROS MotionServer disconnect", "Connection lost.  Resetting socket.";
		ExitCycle;  ! restart program
	ELSE
		TRYNEXT;
	ENDIF
UNDO
	IF (SocketGetStatus(client_socket) <> SOCKET_CLOSED) SocketClose client_socket;
	IF (SocketGetStatus(server_socket) <> SOCKET_CLOSED) SocketClose server_socket;
ENDPROC

LOCAL PROC trajectory_pt_callback(ROS_msg_joint_traj_pt message)
	VAR ROS_joint_trajectory_pt point;
	VAR jointtarget current_pos;
    VAR ROS_msg reply_msg;

    point := [message.joints, message.duration];
    
    ! use sequence_id to signal start/end of trajectory download
	TEST message.sequence_id
		CASE ROS_TRAJECTORY_START_DOWNLOAD:
            TPWrite "Traj START received";
			trajectory_size := 0;                 ! Reset trajectory size
            add_traj_pt point;                    ! Add this point to the trajectory
		CASE ROS_TRAJECTORY_END:
            TPWrite "Traj END received";
            add_traj_pt point;                    ! Add this point to the trajectory
            activate_trajectory;
		CASE ROS_TRAJECTORY_STOP:
            TPWrite "Traj STOP received";
            trajectory_size := 0;  ! empty trajectory
            activate_trajectory;
            StopMove; ClearPath; StartMove;  ! redundant, but re-issue stop command just to be safe
		DEFAULT:
            add_traj_pt point;                    ! Add this point to the trajectory
	ENDTEST

    ! send reply, if requested
    IF (message.header.comm_type = ROS_COM_TYPE_SRV_REQ) THEN
        reply_msg.header := [ROS_MSG_TYPE_JOINT_TRAJ_PT, ROS_COM_TYPE_SRV_REPLY, ROS_REPLY_TYPE_SUCCESS];
        ROS_send_msg client_socket, reply_msg;
    ENDIF

ERROR
    RAISE;  ! raise errors to calling code
ENDPROC

LOCAL PROC add_traj_pt(ROS_joint_trajectory_pt point)
    IF (trajectory_size = MAX_TRAJ_LENGTH) THEN
        ErrWrite \W, "Too Many Trajectory Points", "Trajectory has already reached its maximum size",
            \RL2:="max_size = " + ValToStr(MAX_TRAJ_LENGTH);
    ELSE
        Incr trajectory_size;
        trajectory{trajectory_size} := point; !Add this point to the trajectory
    ENDIF
ENDPROC

LOCAL PROC activate_trajectory()
    WaitTestAndSet ROS_trajectory_lock;  ! acquire data-lock
    TPWrite "Sending " + ValToStr(trajectory_size) + " points to MOTION task";
    ROS_trajectory := trajectory;
    ROS_trajectory_size := trajectory_size;
    ROS_new_trajectory := TRUE;
    ROS_trajectory_lock := FALSE;  ! release data-lock
ENDPROC
	
ENDMODULE

ROS_stateServer

 

 

MODULE ROS_stateServer

! Software License Agreement (BSD License)
!
! Copyright (c) 2012, Edward Venator, Case Western Reserve University
! Copyright (c) 2012, Jeremy Zoss, Southwest Research Institute
! All rights reserved.
!
! Redistribution and use in source and binary forms, with or without modification,
! are permitted provided that the following conditions are met:
!
!   Redistributions of source code must retain the above copyright notice, this
!       list of conditions and the following disclaimer.
!   Redistributions in binary form must reproduce the above copyright notice, this
!       list of conditions and the following disclaimer in the documentation
!       and/or other materials provided with the distribution.
!   Neither the name of the Case Western Reserve University nor the names of its contributors
!       may be used to endorse or promote products derived from this software without
!       specific prior written permission.
!
! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
! EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
! OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
! SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
! INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
! TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
! BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
! WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

LOCAL CONST num server_port := 11002;
LOCAL CONST num update_rate := 0.10;  ! broadcast rate (sec)

LOCAL VAR socketdev server_socket;
LOCAL VAR socketdev client_socket;

PROC main()

    TPWrite "StateServer: Waiting for connection.";
	ROS_init_socket server_socket, server_port;
    ROS_wait_for_client server_socket, client_socket;
    
	WHILE (TRUE) DO
		send_joints;
		WaitTime update_rate;
    ENDWHILE

ERROR (ERR_SOCK_TIMEOUT, ERR_SOCK_CLOSED)
	IF (ERRNO=ERR_SOCK_TIMEOUT) OR (ERRNO=ERR_SOCK_CLOSED) THEN
        SkipWarn;  ! TBD: include this error data in the message logged below?
        ErrWrite \W, "ROS StateServer disconnect", "Connection lost.  Waiting for new connection.";
        ExitCycle;  ! restart program
	ELSE
		TRYNEXT;
	ENDIF
UNDO
ENDPROC

LOCAL PROC send_joints()
	VAR ROS_msg_joint_data message;
	VAR jointtarget joints;
	
    ! get current joint position (degrees)
	joints := CJointT();
    
    ! create message
    message.header := [ROS_MSG_TYPE_JOINT, ROS_COM_TYPE_TOPIC, ROS_REPLY_TYPE_INVALID];
    message.sequence_id := 0;
    message.joints := joints.robax;
    
    ! send message to client
    ROS_send_msg_joint_data client_socket, message;

ERROR
    RAISE;  ! raise errors to calling code
ENDPROC

ENDMODULE

ROS_motion

 

 

MODULE ROS_motion

! Software License Agreement (BSD License)
!
! Copyright (c) 2012, Edward Venator, Case Western Reserve University
! Copyright (c) 2012, Jeremy Zoss, Southwest Research Institute
! All rights reserved.
!
! Redistribution and use in source and binary forms, with or without modification,
! are permitted provided that the following conditions are met:
!
!   Redistributions of source code must retain the above copyright notice, this
!       list of conditions and the following disclaimer.
!   Redistributions in binary form must reproduce the above copyright notice, this
!       list of conditions and the following disclaimer in the documentation
!       and/or other materials provided with the distribution.
!   Neither the name of the Case Western Reserve University nor the names of its contributors
!       may be used to endorse or promote products derived from this software without
!       specific prior written permission.
!
! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
! EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
! OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
! SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
! INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
! TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
! BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
! WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

LOCAL CONST zonedata DEFAULT_CORNER_DIST := z10;
LOCAL VAR ROS_joint_trajectory_pt trajectory{MAX_TRAJ_LENGTH};
LOCAL VAR num trajectory_size := 0;
LOCAL VAR intnum intr_new_trajectory;

PROC main()
    VAR num current_index;
    VAR jointtarget target;
    VAR speeddata move_speed := v10;  ! default speed
    VAR zonedata stop_mode;
    VAR bool skip_move;
    
    ! Set up interrupt to watch for new trajectory
    IDelete intr_new_trajectory;    ! clear interrupt handler, in case restarted with ExitCycle
    CONNECT intr_new_trajectory WITH new_trajectory_handler;
    IPers ROS_new_trajectory, intr_new_trajectory;

    WHILE true DO
        ! Check for new Trajectory
        IF (ROS_new_trajectory)
            init_trajectory;

        ! execute all points in this trajectory
        IF (trajectory_size > 0) THEN
            FOR current_index FROM 1 TO trajectory_size DO
                target.robax := trajectory{current_index}.joint_pos;

                skip_move := (current_index = 1) AND is_near(target.robax, 0.1);

                stop_mode := DEFAULT_CORNER_DIST;  ! assume we're smoothing between points
                IF (current_index = trajectory_size) stop_mode := fine;  ! stop at path end

                ! Execute move command
                IF (NOT skip_move)
                    MoveAbsJ target, move_speed, \T:=trajectory{current_index}.duration, stop_mode, tool0;
            ENDFOR

            trajectory_size := 0;  ! trajectory done
        ENDIF
        
        WaitTime 0.05;  ! Throttle loop while waiting for new command
    ENDWHILE
ERROR
    ErrWrite \W, "Motion Error", "Error executing motion.  Aborting trajectory.";
    abort_trajectory;
ENDPROC

LOCAL PROC init_trajectory()
    clear_path;                    ! cancel any active motions

    WaitTestAndSet ROS_trajectory_lock;  ! acquire data-lock
      trajectory := ROS_trajectory;            ! copy to local var
      trajectory_size := ROS_trajectory_size;  ! copy to local var
      ROS_new_trajectory := FALSE;
    ROS_trajectory_lock := FALSE;         ! release data-lock
ENDPROC

LOCAL FUNC bool is_near(robjoint target, num tol)
    VAR jointtarget curr_jnt;
    
    curr_jnt := CJointT();
    
    RETURN ( ABS(curr_jnt.robax.rax_1 - target.rax_1) < tol )
       AND ( ABS(curr_jnt.robax.rax_2 - target.rax_2) < tol )
       AND ( ABS(curr_jnt.robax.rax_3 - target.rax_3) < tol )
       AND ( ABS(curr_jnt.robax.rax_4 - target.rax_4) < tol )
       AND ( ABS(curr_jnt.robax.rax_5 - target.rax_5) < tol )
       AND ( ABS(curr_jnt.robax.rax_6 - target.rax_6) < tol );
ENDFUNC

LOCAL PROC abort_trajectory()
    trajectory_size := 0;  ! "clear" local trajectory
    clear_path;
    ExitCycle;  ! restart program
ENDPROC

LOCAL PROC clear_path()
    IF ( NOT (IsStopMoveAct(\FromMoveTask) OR IsStopMoveAct(\FromNonMoveTask)) )
        StopMove;          ! stop any active motions
    ClearPath;             ! clear queued motion commands
    StartMove;             ! re-enable motions
ENDPROC

LOCAL TRAP new_trajectory_handler
    IF (NOT ROS_new_trajectory) RETURN;
    
    abort_trajectory;
ENDTRAP

ENDMODULE

 

 

 

C 运行ROS服务器

注意,RAPID运行模式为连续。

在ROS端编译完成abb和abb_experimental包,可从github下载。

支持IRB2400、IRB5400、IRB6600、IRB6640、IRB120、IRB120T和IRB4400等。

在终端启动:

 

exbot@relay-Aspire-4741:~$ roslaunch abb_irb120_moveit_config moveit_planning_execution.launch sim:=false robot_ip:=192.168.1.100

winpc显示如下:

 

rospc显示如下:

1 手动模式

程序指针 "PP to Main",Enable使得 "Motors On",点击运行按钮。即可在rospc端控制机械臂运动。

winpc端:

rospc端:

手动模式,规划执行过程有可能中断,请查阅相关文档。

2 自动模式

 "Motors On"并点击运行模式。

winpc:

如果是实际机器人,请注意为全速运行。

rospc:

--

 

Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(2控制实体)
Alvin_shao的博客
10-20 2189
ros_abb
关于ROS——moveit——ABB机械臂——fanuc机械臂
sinat_39190179的博客
07-17 937
ROS从这里开始吧: 首先是运行环境Ubuntu 安装到了虚拟机上,在VMware上安装Ubuntu。跟着这位B站up主安的。 具体连接放这里了还有就是用国内的源还是能快不少的。所以还有这个 然后就ROS系统了 ROS系统下对应版本的,一开始下的20.04,最后还是自食其果,16.04的key已经不好找了,放一个链接吧16.04的资料还是挺多的,对Linux里的代码生疏,所以多借鉴吧。 直接就来moveit吧 因为有ABB和fanuc机械臂,所以直接来用moveit去做一些简单地路径规划。一开始是ABB,先
ROS机械臂——rviz+gazebo仿真环境搭建
最新发布
Vodka的博客
07-26 668
纲要 ROS的控制插件 常用控制器 完善机器人模型 为link添加惯性参数和碰撞属性 为joint添加传动装置 添加gazebo控制插件 加载机器人模型 启动仿真环境 问题:gazebo加载的模型只有一层阴影 解决方案:关闭虚拟机,设置虚拟机属性,显示器:关闭3D图形加速 给虚拟机开启图形化加速: echo “export SVGA_VGPU10=0” >> ~/.bashrc 目录架构 gazebo.launch <launch> <arg
ROS(indigo)MoveIt!控制ABB RobotStudio 5.6x 6.0x中机器人运动
zhangrelay的专栏
08-31 6212
Gazebo以及相关参考文献,参考: ROS(indigo)ABB机器人MoveIt例子 这里需要配置RobotStudio,请参考ROS官网教程。下面列出要点:   window端配置结束后,在Ubuntu中启动ROS和MoveIt!就可以规划并控制RobotStudio中机器人运动,如下:       ----
Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)
Alvin_shao的博客
10-19 4762
Ubuntu系统下使用ROS(moveit )连接ABB实体机器人(irb120)(1.控制仿真)
ROS下使用Moveit!控制ABB机器人
qq_31393391的博客
07-18 1588
Ubuntu下Moveit!和ABB Robotstudio建立连接的博客有很多,这里推荐一下: 建立虚拟机Ubuntu中ROS与Windows10中ABB Robot Studio的通信连接 https://blog.csdn.net/u014697321/article/details/106434289#comments_12532558 写的挺详细,这里我用的是真实的ABB机器人,方法大同小异 以及官方文档 http://wiki.ros.org/abb/Tutorials/InstallServe
使用ROS-I接口通过MoveIt包安装和操作ABB机器人
tuziaaa的博客
10-08 1846
使用ROS-I接口安装和操作ABB机器人 1.在RobotStudio中使用仿真机器人(用真实机器人的可以跳过这一步) 设置用于ROS-Industrial驱动程序的ABB RobotStudio模拟器。 http://wiki.ros.org/abb/Tutorials/RobotStudio 通过使用仿真机械臂替代真实机械臂,可以在ROSABB机械臂进行通信仿真。这种情况下,通常有两...
ROS机械臂模型的调试
学习笔记
04-18 1344
用传感器串口输出数据控制虚拟机ROS中的6DOF机械臂模型。(每次重新调试都需要一定的时间熟悉过程,所以记录一下。不记录代码只记录调试过程) 串口配置 传感器通过USB转TTL模块接到电脑,在虚拟机终端,输入: ls -l /dev/ttyUSB*查看串口信息(假设串口是USB0); 增加串口访问权限:sudo chmod 666 /dev/ttyUSB0。 工作空间文件结构 工作空间src下有3个package,分别是: description(内含机械臂模型urdf文件)、 moveit_con
ROS机械臂运动控制(完整项目代码python)
06-06
包括SLAM建图导航算法部署,Moveit2.0机械臂挖掘动作仿真,Matlab-ROS联合通信显示雷达图,并控制Gazebo移动。 pudong: 基础模型,可以rviz中查看。 pudong_gazebo: 可以用于Gazebo中的模型,另包含一些算法。 ...
abb_experimental:用于ROS-Industrial(http:
05-08
ABB实验 ABB实验中继套件。 有关更多信息,请参见页面。 内容 此存储库包含在接受足够的测试后将迁移到存储库的软件包。 这些软件包的内容如有更改,恕不另行通知。 任何可用的API都被认为是不稳定的,并且不保证...
ROS虚拟机(包含ubuntu20+Ros-noetic镜像以及虚拟机软件和使用教程
05-03
ubuntu Ros虚拟机镜像,已配置好ROS系统和常用软件(换源,google浏览器、搜狗输入法、ssh等),功能包齐全,免去安装烦恼 系统版本:ubuntu20.04+noetic 包含文件如下: 1. 虚拟机镜像(含ros) 2. 虚拟机软件 3. ...
基于ROS机械臂运动控制
08-01
基于ROS机械臂运动控制源代码,包含六自由度机械臂的Rviz仿真模型、moveit运动轨迹规划、机械臂运动控制以及相机标定等源代码及脚本程序。
kinova机械臂调试程序
11-13
kinova机械臂的仿真,调试程序,可以读取机械臂关节扭矩、速度、转矩等
基于ROS的移动操作机械臂底层规划 及运动仿真
05-10
冗余机械臂运动学建模 基于ROS的仿真平台搭建 高维空间RRT规划及动态规划 控制器设计及仿真实验
ABB机械臂与PC通讯(socket),
02-02
ABB与PC通讯,里面是ABB的程序,在ABB机械臂上测试通过,相较于论坛和github上其接受和发送数据的过程程序较简单,无注释,可以在robotstudio里的help查看函数的介绍
ROS中下载abb机械臂文件
long_steve的博客
08-06 1589
ROS中下载abb机械臂文件 工具:ubuntu16.04、ros kinetic 创建abb的工作空间 mkdir -p ~/abb_ws/src cd ~/abb_ws/src catkin_init_workspace //工作空间初始化, 产生一个 CMakelist 文件 cd ~/abb_ws catkin_make //编译整个工作空间,产生build和devel文件 将工作空间永久添加到ros环境 echo "source ~/abb_ws/devel/setup.bash"
机器人手ROS机器人力控制
程序员光剑
01-28 790
1.背景介绍 机器人手是一种常见的机器人系统,它通常由多个连续或相互独立的机部件组成,如肩部、部、手部等。在现实生活中,机器人手广泛应用于工业生产、物流处理、医疗诊断等领域。为了方便地编程和控制机器人手Robot Operating System(ROS)提供了一种标准的软件架构和工具集。本文将从背景、核心概念、算法原理、最佳实践、应用场景、工具推荐等多个方面深入探讨ROS机器人力...
七轴机械臂调试入门
qq_32896521的博客
11-26 2888
七轴机械臂调试入门一、安装接线1.机箱2.控制柜接线二、机械臂调试1.打开机械臂制动器2.打开ui调试工具3.插电开机 一、安装接线 1.机箱 机箱如图所示: 主机箱背后连接电源线,网线(连接电脑主机)和act/lnn接口(用于传输机械臂数据) 2.控制柜接线 控制柜如图所示: 来自机械臂的数据线有48、gnd、15分别插在控制柜相应上。 白色的接地线接与此处,另一端接与机械臂上。 二、机械臂调试 1.打开机械臂制动器 不打开会报错 2.打开ui调试工具 ui内输入机械臂主机的ip地址192.1.
泰科机械臂调试记录
ze3000的博客
11-29 462
调试力矩,在初始位置下 robotarm@robotarm:~$ ethercat slaves 0 0:0 PREOP + AEM-090-30 1 0:1 PREOP + AEM-090-30 2 0:2 PREOP + AEM-090-30 3 0:3 PREOP + AEM-090-30 4 255:0 PREOP + AEM-090-30 5 255:0 PREOP + AEM-090-30 6 255:0 PREOP ...
ros-6.44.6-x64-l6-60m.zip
07-13
### 回答1: ros-6.44.6-x64-l6-60m.zip是一个文件压缩包的名称。其中,ROS代表RouterOS操作系统,6.44.6代表版本号,x64表示支持64位处理器架构,l6表示该版本为Level 6许可证,60m表示该版本支持最多60个用户连接。 文件压缩包通常用于将多个文件或者文件夹打包成一个单独的文件,以便于存储、传输和共享。对于ros-6.44.6-x64-l6-60m.zip这个压缩包来说,它可能包含了安装RouterOS操作系统所需的一系列文件和文件夹,包括系统的核心文件、配置文件、驱动程序等等。这个压缩包的使用可以方便用户快速安装和部署RouterOS操作系统,同时也提供了一定数量的用户连接许可证。 使用这个压缩包时,我们可以首先将它下载到本地计算机中,然后使用解压缩软件进行解压。解压后,我们可以找到对应的安装文件和许可证文件,按照相关的安装指南进行操作,以完成RouterOS操作系统的安装。在安装完成后,我们可以根据许可证的规定确定最多可以连接的用户数,并进行相应的网络配置和管理,以满足我们的需求。 总而言之,ros-6.44.6-x64-l6-60m.zip是一个用于安装和部署RouterOS操作系统的文件压缩包,它包含了操作系统的相关文件和用户连接许可证。使用这个压缩包可以方便地进行RouterOS的安装和配置工作,以满足我们的网络需求。 ### 回答2: ros-6.44.6-x64-l6-60m.zip是一个文件压缩包的名称。按照命名规则,文件名称中的"ros"可能是指"RouterOS",它是一种基于Linux的操作系统,用于运行于MikroTik路由器设备上。 "6.44.6"是指该压缩包对应RouterOS的版本号。每个版本的RouterOS都有各自的更新和改进。 "x64"表示该版本是64位架构,适用于支持64位操作系统的设备。 "l6"代表该RouterOS版本的许可等级为Level 6。RouterOS有不同的许可等级,每个等级拥有不同的功能和限制。 "60m"可能代表了该版本RouterOS的许可有效期为60个月。RouterOS的许可期限可以根据购买的类型和许可等级而有所不同。 "zip"是一种常见的文件压缩格式,意味着该文件通过压缩算法进行了压缩,以便更有效地存储和传输。 综上所述,"ros-6.44.6-x64-l6-60m.zip"是一份包含RouterOS版本为6.44.6,64位架构,许可等级为Level 6,许可有效期为60个月的压缩文件。
写文章

热门文章

  • 计算机控制技术课程配套教材习题解答(第6、7、8章) 117155
  • 在Ubuntu 18.04 LTS安装ROS Melodic版机器人操作系统(2019年10月更新MoveIt! 1.0 ROS 2.0 Dashing) 66603
  • Ubuntu 16.04/18.04 安装和使用QQ和微信最简洁的方式(2019.10.28更新) 66480
  • 写博客8年与人生第一个502万 65941
  • 机器人工程专业简介与开设高校名单详细完整版(2019年4月更新-专业代码:080803T) 60838

分类专栏

  • ROS2学习笔记与高校课程分享 104篇
  • ROS Melodic 迷失与救赎 20篇
  • ROS Kinetic 学习笔记 53篇
  • ROS indigo 学习笔记 55篇
  • 机器人工程专业 35篇
  • 机器人仿真 69篇
  • 多机器人系统 38篇
  • GazeboSim仿真平台 31篇
  • ROS_melodic机器人操作系统 19篇
  • ROS_indigo机器人操作系统 101篇
  • ROS_kinetic机器人操作系统 106篇
  • ROS机器人程序设计(第2版)补充 57篇
  • EmotivEpoc脑电设备 1篇
  • Thinkpadwifi驱动 1篇
  • Ubuntu软件 80篇
  • ABB机械臂 5篇
  • 杂乱笔记 72篇
  • 课程-现代控制理论- 27篇
  • 课程-计算机控制技术- 29篇
  • 课程-单片机理论与实践- 24篇
  • 课程-人机智能交互技术- 12篇
  • 课程-专业工具软件与应用- 13篇
  • 课程-机器人系统设计及控制- 41篇
  • 课程-智能机器人综合实践- 27篇
  • 课程-机器人控制器编程- 14篇
  • 人工智能基础(高中版) 41篇

最新评论

  • 机器人相关知识的本身和价值

    可惜已不在: 该技术博客的结构编排合理,各部分内容之间过渡自然,以一种条理分明的方式呈现技术知识,有助于读者构建知识体系。

  • Arduino IDE离线配置第三方库文件-ESP32开发板

    zhangrelay: 嗯~ o(* ̄▽ ̄*)o,感谢你的鼓励和支持。

  • Arduino IDE离线配置第三方库文件-ESP32开发板

    CSDN-Ada助手: 恭喜你这篇博客进入【CSDN每天值得看】榜单,全部的排名请看 https://bbs.csdn.net/topics/619314322。

  • 那些曾经使用而现在已经改变的技术-C++篇

    征途黯然.: This article about 那些曾经使用而现在已经改变的技术C篇 is very deep and insightful!表情包

  • 为什么一些行业刚起步就白热化竞争-例如机器人行业?

    全栈小5: 优质好文,博主的文章细节很到位,兼顾实用性和可操作性,感谢博主的分享,期待博主持续带来更多好文,支持【为什么一些行业刚起步就白热化竞争-例如机器人行业?,博主这篇文章,值得一看】

最新文章

  • Lubuntu电源管理
  • 如何避开学习和研究机器人方向无价值的知识节约时间
  • ROS和ROS2借助智能大模型的学习和研究方法
2024
09月 18篇
08月 23篇
07月 14篇
06月 12篇
05月 9篇
04月 8篇
03月 21篇
02月 8篇
01月 19篇
2023年179篇
2022年441篇
2021年205篇
2020年163篇
2019年179篇
2018年112篇
2017年141篇
2016年135篇
2015年18篇

目录

目录

评论 49
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangrelay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家装饰商场美陈呼和浩特人物玻璃钢雕塑生产厂家青岛市玻璃钢雕塑加工厂家商场花坛美陈中山市玻璃钢雕塑艺术无锡玻璃钢人物雕塑定做价格陕西抽象玻璃钢雕塑供应商玻璃钢雕塑作品名称圣诞玻璃钢雕塑厂家户外商场美陈报价济源玻璃钢浮雕不锈钢景观雕塑昭通玻璃钢雕塑批发零售建材家居商场消防门美陈文案河源树脂玻璃钢雕塑工艺北京玻璃钢仿真水果雕塑价格黄山抽象玻璃钢雕塑朔州玻璃钢广场雕塑价格天津曲阳玻璃钢佛像雕塑玻璃钢牛雕塑制作广东玻璃钢雕塑价位湖南小区玻璃钢雕塑制作北京玻璃钢几何雕塑江苏玻璃钢雕塑供应商smc玻璃钢花盆云南人物玻璃钢雕塑价位玻璃钢雕塑怎么上铜色余杭区商场美陈布置廊坊玻璃钢雕塑厂家定制郑州景区玻璃钢雕塑绍兴玻璃钢花盆批发香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化