Get an arduino kit and learn a little electronics. The kit likely comes with a brushed motor and a servo. Learn how motors works and how to write code to make motors spin. Then get a stepper motor and an arduino-compatible motor shield or CNC shield and spend some time getting multiple motors to move. Once you understand those basics, you can hook motors together in a rigid frame and you have a robot (2 motors with wheels is mobile, 3 or 4 motors with links is an arm). The kit will also come with some simple sensors which you can use to do things like measure light and distance, which you can use to start playing with feedback control (look up Braitenberg vehicles for a project idea).Seconding all the people who said avoid ROS - it's not worth the effort for hobby-level stuff. It's barely worth the effort for "professional" robotics.
Also don't worry about physics too much - build your physical intuition by playing with working systems of increasing complexity.
dmonitor|15 days ago
jacquesm|15 days ago
irishcoffee|15 days ago
rck|15 days ago
If you were in robotics prior to 2010, you probably would have used something called Player/Stage (by some of the same people who developed ROS). Believe it or not, another big motivation for ROS was solving the (many) problems that popped up as people tried to get Player/Stage running with robots like the Pioneer 3-DX.
Xmd5a|15 days ago
the__alchemist|15 days ago
Starting, but not limited to a "T".(ROS: Robotics community; RTOS: Embedded community)
Involving anything managed by a GPOS (e.g. Linux) in robotics is something I would use with extreme caution, and for limited cases like a CV module.
Teknoman117|15 days ago
It was like pulling teeth trying to explain to someone that they couldn’t use the Linux GPIO subsystem from python to accurately measure sub-millisecond events…
Linux is a general purpose OS, it’s typically tuned for throughput not precise timing. Sure there’s PREMPT_RT but it only buys you so much.
globalnode|15 days ago