Conversations with Overlords - slgrobotics/articubot_one GitHub Wiki

Here are some of my conversations with our AI overlords on ChatGPT.com - preserved for posterity because they managed to teach me a thing or two.

Contents:



Question 1:

I noticed that Orientation Covariance data is missing (not published by the bno08x driver). Why is my EKF output lagging and jumping? What is the impact on EKF fusing IMU and wheel odometry data?

A: https://chatgpt.com/s/t_691b60f38e1c8191a0a309cbcf99e478


Question 2:

I've got the IMU working very well, with covariances published as you suggested. My wheel odometry is also pretty good. Would you suggest any improvements to my EKF parameters? I have them as follows: (full text of robots/seggy/config/ekf_odom_params.yaml)

A: https://chatgpt.com/s/t_691b80a57e588191b1528a238588b87a


Question 3:

I reorganized my launch files, as you suggested. Please take another look at https://github.com/slgrobotics/articubot_one/tree/dev and provide harsh criticism again

A: https://chatgpt.com/s/t_691b90f26e408191b19bfca0c61cc16c


Question 4:

Let's make a multi-robot version of my "dragger.launch.py"

A: https://chatgpt.com/s/t_691e793040bc819198d2038a38f34652


Question 5:

For my Seggy robot I have a Nav2 config file as follows. I properly set footprint and inflation_radius and the robot works fine and avoids obstacles with a good margin. I want to lower that margin so that Seggy can roll through doorways.

  • <pasted robots/seggy/config/nav2_params.yaml>

A: https://chatgpt.com/s/t_692127cb69908191b67ce0e1df8d9646


Question 6:

I am trying to use SLAM Toolbox on my Dragger robot outdoors, with GPS. I have navsat localizer working perfectly, with mapper server and empty map. But when I replace mapping server with SLAM Toolbox, the robot starts jumping as if there are conflicting TF transforms published. How can I solve this?

  • My slam toolbox is launched as follows: <pasted relevant portion of the file: robots/dragger/launch/dragger.localizers.launch.py>
  • My slam toolbox parameters file is as follows: <pasted: robots/dragger/config/mapper_params.yaml>

A: https://chatgpt.com/s/t_692348bb05048191b24d621992e75b03

Follow up dialog:

Q: show me the correct launch + TF architecture for outdoor GPS mapping

A: https://chatgpt.com/s/t_692357fe0b008191abf0105f0e84a228

ROS 2 Bringup Package Template: Outdoors Package Template


Question 7:

My ROS2 robot works with Cartographer fine when only 'use_odometry = true' is set. But when I enable either 'use_nav_sat' or 'TRAJECTORY_BUILDER_2D.use_imu_data' - the map immediately becomes distorted when the robot starts moving. I suspect that Cartographer expects IMU or Navsat data in a reference frame different from the ROS2 standard ENU. Any ideas how to fix it?

A: https://chatgpt.com/s/t_6931ba6e095c8191b2eb13eb2c4dfff6


Question 8:

Please explain the relationship between TF frames "map", "odom" and "base_link" - and how ROS2 Localizers and Nav2 use them.

A: https://chatgpt.com/s/t_69308308f76c81918ab791cb8584bf89


Question 9:

What would you advise a curious young person today — someone with time, energy, and the willingness to learn, - where he/she should put their energy?

A: https://chatgpt.com/s/t_6941946918688191bd7fb57bdb989ab2


Question 10:

Suggest a general architecture for a safety system for a wheeled home robot under ROS2. It has an Intel I9 machine and several MCU control boards, a 50 Ah Lithium battery and extra proximity sensors.

A:


Question 11:

Help me understand and visualize the following transformations from the MPU9250 driver:

cfg.transformationMatrix = np.array([0.0,1.0,0.0],[1.0,0.0,0.0],[0.0,0.0,-1.0](/slgrobotics/articubot_one/wiki/0.0,1.0,0.0],[1.0,0.0,0.0],[0.0,0.0,-1.0)).astype(np.int16)
cfg.acc_t_matrix_ned = np.array([0.0,-1.0,0.0],[-1.0,0.0,0.0],[0.0,0.0,1.0](/slgrobotics/articubot_one/wiki/0.0,-1.0,0.0],[-1.0,0.0,0.0],[0.0,0.0,1.0))
cfg.gyro_t_matrix_ned = np.array([0.0,1.0,0.0],[1.0,0.0,0.0],[0.0,0.0,-1.0](/slgrobotics/articubot_one/wiki/0.0,1.0,0.0],[1.0,0.0,0.0],[0.0,0.0,-1.0))
cfg.mag_t_matrix_ned = np.array([0.0,-1.0,0.0],[1.0,0.0,0.0],[0.0,0.0,1.0](/slgrobotics/articubot_one/wiki/0.0,-1.0,0.0],[1.0,0.0,0.0],[0.0,0.0,1.0))

A: https://chatgpt.com/s/t_696288744fb081919dcfc65153c7b505


Question 12:

I need to run a full ROS2 stack on a Mac Mini. Here are the requirements:

  • It will need to run its native OS while hosting an exact Raspberry Pi Ubuntu 24.04 image in a virtual machine—binaries, possibly even an R/T kernel. Is this feasible? If yes, which Mini models (M1…M4) would work best? Is "Apple silicon" ARM enough for this?
  • I personally don’t need any GUI on my robots—headless operation is perfectly fine. That means Ubuntu Server with ROS 2 Base (Jazzy, for example). But again, binaries.
  • The GPIO and I²C limitations can be addressed by using, for example, Michael Wimble’s Teensy boards and software (especially if ros2_control support is adopted). All sensors and actuators would connect to the MCU controller board.
  • And finally—has anyone actually done this before? Not compiling ROS 2 from source and hacking through the weeds, but using ARM binaries: apt installs, updates, the full enchilada? Create a very short article researching the current state of affairs and highlighting potential problems and solutions.

A: https://chatgpt.com/s/t_698523adff548191a02cdf502a1c82bb

Additional info: https://groups.google.com/g/hbrobotics/c/YUYh8CGLz7E/m/5ptMa9naAgAJ (direct 12V power conversion and Mac Mini specs)

Pure sine wave power inverters: https://www.amazon.com/s?k=12v+pure+sine+wave+inverter+200w


Question 13:

what is the difference between the LLMs and World Models in robotics? do some research and explain in a one-page format

A:


Question 14:

I am considering OpenClaw for my robot. I read about its "agentic" nature and its ability to create and execute workflows. It could be applied to robots as a “interpretive and creative” layer on top of ROS 2. Please elaborate.

A:


Question 15:

I asked AI the question: "Vibe coding - is it addictive to humans? Is AI playing a 'rent-a-human' game?"

Here are the answers:

Don’t ask me how I came up with that question...


Question 16:

I have a ROS2 robot that operates outdoors using GPS, Nav2, Behavior trees. I may implement some kind of wandering or patrolling logic. I want to limit its movements to an area that is limited by a geofence. Is there a standard package that operates on the geofence idea?

A:

I prefer geofence logic to be a separate package. Is it a good idea? Keeping in mind that other functions will be in other new packages (like patrolling) and some will be integrated in existing packages (like BT plugins) - let's draft the geofence package first.


Question 17:

Is this factually true, when talking about two computers on the LAN, one publishing a camera stream and the other having several subscribers?

"ROS' DDS system will only send the data once even if there are 20 subscribers to the message"

Once you set export FASTDDS_BUILTIN_TRANSPORTS=LARGE_DATA (i.e. use TCP, if I understand correctly) - the streams separate.

A: https://chatgpt.com/s/t_6ab71bd9bda88191bea299b9724a4627


Question 18:

A:


Question 19:

A:


Back to Home