12
votes
How to setup CLion for ROS?
Start CLion from a commandline with your sourced ROS workspace (i.e. after calling source devel/setup.bash)
Open a project's CMakeLists.txt, and tell it to open it ...
6
votes
How to setup CLion for ROS?
Integrating CLion with ROS is actually straight forward and works out of the box if one knows how to do it:
With your console, go into your ROS workspace and source the respective ...
6
votes
Programming Inverse Kinematics in C++
I agree with SteveO that there is nothing wrong with reinventing the wheel if you want to learn about wheels. And for a single application, 4 DoF arm, the IK is probably not too hard.
But I feel ...
Ben♦
- 5,825
6
votes
How Can A Total Beginner Become A Skilled Roboticist?
Robotics is a mixture of things like mechanical engineering, electronics engineering and software engineering! Knowing C++ is a big head start in this area! Because I strongly believe that amongst all ...
5
votes
Accepted
Programming Inverse Kinematics in C++
It is rather straightforward to implement inverse kinematics for a particular manipulator in C++. Of course, you need to begin with the inverse kinematic equations themselves. Putting those into ...
5
votes
Accepted
Multiple View Triangulation method used by COLMAP
This method is minimizing the reprojection error of the triangulated point. How to see this: Let $P_i$ be the $3 \times 4$ projection matrices, and let $x_i \in \mathbb{R}^3$ be the (homogenized ...
5
votes
How Can A Total Beginner Become A Skilled Roboticist?
There are a few dimensions to being a roboticist:
is knowledge of theory about robot perception (understanding the world through sensors such as cameras, signal processing and machine learning), ...
4
votes
Is there any C++ library I could use to program a robotic manipulator involving forward and inverse kinematics?
The best way to understand forward and inverse kinematics is to write a library for its own. A good starting point is to implement Cyclic Coordinate Descent.
So called "ready-to-run" librarys like ...
4
votes
Accepted
How to become proficient in software development for an aspiring roboticist?
If you make a career of robotics, you will come in contact with a lot of languages, a lot of libraries, and a lot of systems.
The more you know about the fundamentals, the easier it will be to adjust ...
4
votes
Accepted
Adjusting the PWM frequency and duty cycle to achieve the desired angular velocity in differential drive robots
At first, I did not go trough your code to check for errors in the formulas but from a high level perspective this seems ok. Therefore, your position controller is fine.
What you lack is a lowlevel ...
4
votes
PID Control: Is adding a delay before the next loop a good idea?
Don't disengage your controller.
The purpose of a controller is not only to steer your system to the desired setpoint according to a predetermined dynamical response but also to counteract potential ...
4
votes
Accepted
Does a stable library exist for docking robots using images?
There's a lot of solutions out there already for this. I'll start by suggesting AR tags not QR tags. They're better optimized for localizing.
The Alvar library is commonly used for tracking AR tags.
...
4
votes
Accepted
Creating a custom msg in ros2
The short version is, you need to tell CMake where to find the targets generated for the interfaces and link your own executable/library targets to them. You can do this using the ...
4
votes
Nvidia Jetson Nanon GPIO c++ direct memory interfacing
I created a library that does just that, mapping the tegra CPU registers in user space. My lib is here: https://github.com/Rubberazer/JETGPIO it can be called from C or C++
3
votes
Accepted
Robot Graphical Representation in Real Time
If you are already using Qt, then Q3 3D would be an obviuos choice for 3D representations. Gaming engines like Unity (C#/JavaScript) or the Unreal Engine (C++) are also a suitable choice for ...
3
votes
Implementation of inverse kinematics solution in c++
It is a bit hard to know the exact cause of the error without having the (RobWork), I tried to install it following the link your provided, but I ran into some problems and I don't have the time to ...
3
votes
Accepted
Implementing an analytic version of an inverse kinematic
Given a desired pose:
$$T^{desired} = \begin{bmatrix}
s_x&n_x&a_x&P_x\\
s_y&n_y&a_y&P_y\\
s_z&n_z&a_z&P_z\\
0&...
3
votes
Implementing an analytic version of an inverse kinematic
Your Jacobian-based approach is great for velocity control, or when the manipulator is close to the original point. But remember, the Jacobian only gives a first-order approximation to the ...
3
votes
Accepted
Some Kalman filter implementation queries
Answers are inline
Qn 1. Does kalman filter require constant time step?
Correct it does not.
The reason you may find in literature that it requires a constant time step has to do with with lack ...
3
votes
difference between the two constructors
IMHO the main difference is, that inside function/method the first one (object) is allocated on the stack and destroyed after leaving the function, while the other (pointer) allocates its data on the ...
3
votes
Accepted
C++ (ROS node) for Euler Integration to estimate Velocity knowing the acceleration
I find it easiest to make a class for stuff like this, where you have data you want to use between callbacks, or your want to publish a message inside of another callback. For example, your class ...
3
votes
How could you have controllers communicate with each other?
Welcome to Robotics, Jonathan Ariel Callejas. You haven't provided your code, but I believe the problem you're having is with variable scope.
In your case, your error suggests you're trying to make a <...
2
votes
Accepted
Stereo Vision Using Compute Module: Pi camera synchronization
You need real camera synchronization which means using cameras that both have external trigger capability (it is like the "remote shutter" on consumer/DSLRs). What you do is feed a common trigger ...
2
votes
Accepted
How to split tasks between interrupts and the main loop on a bare metal controller?
Some very general advice.
My first impression from your question is that you are struggling with the fact that no hardware provides infinite resources. You can either slow down your control loops or ...
2
votes
Is there any C++ library I could use to program a robotic manipulator involving forward and inverse kinematics?
I haven't used it personally (yet; it's only a matter of time), but I believe the Rigid Body Dynamics Library is what you're looking for - efficient forward and inverse kinematics.
I did a lot of work ...
2
votes
Does C have advantages over C++ in robotics?
As the comments indicate, the answer is really based on what you want to do with the programs you write. There are a lot of benefits to the object oriented capabilities of C++. But the inheritance, ...
2
votes
Is there a simpler way than ROS for 5 DOF Dynamixel arm control
The library call could be as simple as these two OpenRave Python lines:
robot.GetController().SetPath(traj)
robot.WaitForController(0)
Of course the types would ...
Ben♦
- 5,825
2
votes
Is there a simpler way than ROS for 5 DOF Dynamixel arm control
Cross post on YARP Q&A channel:
https://github.com/robotology/QA/issues/54
2
votes
Can i use a predictive kalman filter to 'increase' my sample rate?
Short answer, yes, if you use your IMU to fill in the gaps.
You can use additional Bayesian filtering to fill in the pose gaps as long as you fuse in your IMU data. The IMU (assuming it has ...
2
votes
Accepted
Can i use a predictive kalman filter to 'increase' my sample rate?
In this situation, you probably shouldn't use a Kalman filter for "filling" in the gaps. Typically, you use a Kalman filter (or Bayes filter etc...) to fuse information from different sources.
In ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
c++ × 765ros × 388
ros-kinetic × 72
ros2 × 57
ros-melodic × 55
opencv × 30
python × 29
roscpp × 29
cmake × 27
callback × 24
catkin × 22
moveit × 21
rosbag × 20
rviz × 19
ros-indigo × 18
arduino × 15
transform × 15
gazebo × 14
pcl × 14
publisher × 14
ubuntu × 13
node × 13
inverse-kinematics × 12
navigation × 12
serial × 11