机器人技术是处理机器人的设计,构造,操作,结构配置,制造和应用的技术分支。机器人技术与电子学,工程学,机械学和软件学有关。您也可以考虑在[*机器人*堆栈交换](http://robotics.stackexchange.com/)上提问。
我想跑 ros2运行joint_state_publisher_gui joint_state_publisher_gui 当我运行它时,它说“找不到可执行文件”。 我该如何解决这个问题? 我尝试在网上寻找一些答案,但是...
我正在尝试使用unity和arduino之间的串行连接来控制两个伺服电机。 然而,我注意到,虽然 arduino 代码可以工作,但我可以独立为伺服电机供电......
作为 Mujoco 的新手,我刚刚在 mujoco 中创建了一个虚拟场景,现在我尝试控制其中的一些对象。该场景包含一个固定桌子,上面放置一本可移动的书,可以是
我编写了下面的 MATLAB 代码,从 UR5 的 TCP/IP 30003 端口读取一些数据流。我得到的结果与我的机器人上的结果不同(我使用的是 URSim 3.5.3 Virtual
使用 swift-sim 进行机器人模拟的客户端应用程序错误
将robotstoolbox导入为rtb 将空间数学导入为 sm 将 numpy 导入为 np 从 Swift 导入 Swift # 制作 Swift 模拟器的实例并打开它 环境 = 斯威夫特() env.launch(实时=True) # ...
我正在制作 4 轮阿克曼汽车的 urdf 模型。我想使用 ackerman Gazebo 插件,在 github 中我找到了一个使用示例,如下所示: 我正在制作 4 轮阿克曼汽车的 urdf 模型。我想使用 ackerman Gazebo 插件,在 github 中我找到了一个使用示例,如下: <gazebo> <plugin name="gazebo_ros_ackermann_drive" filename="libgazebo_ros_ackermann_drive.so"> <ros> <namespace>ackermann</namespace> <remapping>cmd_vel:=cmd_vel</remapping> <remapping>odom:=odom</remapping> <remapping>distance:=distance</remapping> </ros> <update_rate>100.0</update_rate> <!-- wheels --> <front_left_joint>front_left_joint</front_left_joint> <front_right_joint>front_eight_joint</front_right_joint> <rear_left_joint>rear_left_joint</rear_left_joint> <rear_right_joint>rear_right_joint</rear_right_joint> <left_steering_joint>left_steering_joint</left_steering_joint> <right_steering_joint>right_steering_joint</right_steering_joint> <steering_wheel_joint>steering_joint</steering_wheel_joint> <!-- Max absolute steer angle for tyre in radians--> <!-- Any cmd_vel angular z greater than this would be capped --> <max_steer>0.6458</max_steer> <!-- Max absolute steering angle of steering wheel --> <max_steering_angle>7.85</max_steering_angle> <!-- Max absolute linear speed in m/s --> <max_speed>20</max_speed> <!-- PID tuning --> <left_steering_pid_gain>1500 0 1</left_steering_pid_gain> <left_steering_i_range>0 0</left_steering_i_range> <right_steering_pid_gain>1500 0 1</right_steering_pid_gain> <right_steering_i_range>0 0</right_steering_i_range> <linear_velocity_pid_gain>1000 0 1</linear_velocity_pid_gain> <linear_velocity_i_range>0 0</linear_velocity_i_range> <!-- output --> <publish_odom>true</publish_odom> <publish_odom_tf>true</publish_odom_tf> <publish_wheel_tf>true</publish_wheel_tf> <publish_distance>true</publish_distance> <odometry_frame>odom</odometry_frame> <robot_base_frame>base_footprint</robot_base_frame> </plugin> </gazebo> 我的问题出在关节上,因为我制作了 4 个连续关节来使车轮滚动,并制作了两个旋转关节来使前轮沿 z 轴旋转。这 4 个关节是您在插件标签中可以看到的前四个关节。我的问题是,方向盘接头到底是什么?我必须把它放在哪里以及它应该如何连接到汽车的其他部分?如果我删除它,我实际上不会收到错误消息,但我的所有车轮都会在汽车下方移动到中心。如果我只在 Rviz 上显示 urdf,该模型似乎不错。我的 urdf 结构由车身的 base_link、4 个轮子和 base_footprint 组成。 这是仅使用Rviz推出的型号: 这是我启动 Gazebo 和插件的时候: 一般来说,ackermann_drive插件的工作原理是订阅名为cmd_vel(或者使用不同的名称,如果您在 urdf 文件中重新映射)类型为 geometry_msgs::msg::Twist 的主题,这意味着包含目标线速度和整车的目标横摆率。基于此目标,使用您在urdf中设置的 PID 控制器为驱动轮和方向盘生成单独的扭矩命令。 从这个意义上说,这里没有方向盘,你是用这个扭转命令来转向的。根据我通过查看代码的理解,steering_wheel_joint并不是严格需要的,但您不应该删除它,因为,正如您所注意到的,整个链接/关节结构受到损害。我猜想,如果您有一些链接连接到 steering_wheel_joint,那么它将被渲染为实际的方向盘,来自左右方向盘的平均值(与物理现实中发生的情况相反) ). 要查找此内容,您实际上应该打开插件文件gazebo_ros_ackermann_drive.cpp 只是一个片段(第 533-543 行,来自我的评论): // computing the steering wheel angle averaging left and right auto steer_wheel_angle = (left_steering_angle + right_steering_angle) * 0.5 / steering_ratio_; // setting the steer torque on the steering wheels joints_[STEER_LEFT]->SetForce(0, left_steering_cmd); joints_[STEER_RIGHT]->SetForce(0, right_steering_cmd); // setting the driving torque on the driving wheels joints_[REAR_RIGHT]->SetForce(0, linear_cmd); joints_[REAR_LEFT]->SetForce(0, linear_cmd); if (joints_.size() == 7) { // setting the steer angle joints_[STEER_WHEEL]->SetPosition(0, steer_wheel_angle); } 另外(第 224-229 行): // if the steering_wheel_joint is deleted if (!impl_->joints_[GazeboRosAckermannDrivePrivate::STEER_WHEEL]) { RCLCPP_WARN( impl_->ros_node_->get_logger(), "Steering wheel joint [%s] not found.", steering_wheel_joint.c_str()); // the joints are potentially messed up impl_->joints_.resize(6); } 如需更详细的答案,我需要您提供更多详细信息:) 希望这能有所帮助
我正在开发一个由 Arduino 控制的 Scara 机器人,并试图找出逆运动学。我编写了一个简单的示例草图来测试我的功能,但由于
我对物理模拟和机器人问题的稳健接触生成非常感兴趣。我知道 Drake 的水弹性接触模块 [1,2],它为 mod 提供了一种优雅的方法...
在我们的机器人项目中,我们使用 pydrake 查询对象来检查 iiwa 手臂中是否发生碰撞(这对于我们的 RRT 来说是必要的,并且对于双重检查我们的逆向输出非常有用
我将 FTC 机器人设置为使用编码器向前驱动 100 个刻度,但它会连续驱动直到 opmode 停止。代码里调整速度好像也不起作用,卡在...
这是我的程序。为什么它一直在移动而不是停止?我没有看到任何明显的问题,电机只是继续转动而不停止。 包 org.firstinspires.ftc.teamcode.drive....
有没有办法将本地 SDF 文件包含在 pydrake 的场景 YAML 文件中?
在开发我们的机器人项目时,我们希望混合使用我们自己编写的本地 SDF 文件以及来自 pydrake/manipulation 包的文件。我们在...中找到的所有 yaml 文件示例
Raspberry Pi 与 PC 之间的 ROS2 节点通信无法正常工作
通过SSH连接Raspberry Pi和PC后,我安装了ROS2 Foxy。然而,当尝试使用发送器和监听器节点时,PC 到 PC 或 Raspberry Pi 到 Raspberry Pi 之间的通信可以正常工作,但是
Python 项目,用于在 10 x 10 网格中移动的机器人,有一些额外的要求
我有一个用 Python 编写代码的项目,该代码将控制机器人在 10 x 10 网格中的运动。首先我想指出,我是一个初学者,所以如果我能获得 sim 对我来说会更好......
ROS move_base 节点正在生成 Hydro 前警告
我正在使用导航堆栈中的 move_base 。但是,我收到警告 “local_costmap:自提供“插件”以来未使用 preHydro 参数“static_map”” 就成本图而言
我正在从事一个工厂自动化项目,希望了解传送带上对象跟踪的可行性。 目前,工人手动拿起一个螺栓并将其拧到一个物体的孔上......
我构建了一个机器人并通过让它充当接入点来设置本地网络。然后,我从笔记本电脑连接到接入点,并使用 python 通过 UDP 发送命令。 我也想做同样的事...
问题是这样的:已经给了“n”个机器人一个带有障碍物的二维网格。机器人可以在一个时间周期内在相邻的单元中移动。机器人有多种限制,例如它们...
我目前正在攻读嵌入式硕士学位,我的论文必须研究 Erlang 对机器人编程的有效性。 AFAIK Erlang 的声明性和并发性可以是有效的,...
势场法是一种非常流行的机器人导航模拟。然而,有人在真实的机器人上实现了势场法吗?在r中使用该方法的任何参考或任何声明...