Code Monkey get up get coffee Code Monkey go to job Code Monkey have boring meeting With boring manager Rob Rob say Code Monkey very dilligent But his output stink His code not “functional” or “elegant” What do Code Monkey think? Code Monkey think maybe manager want to write god damned login page himself Code Monkey not say it out loud Code Monkey not crazy, just proud Code Monkey like Fritos Code Monkey like Tab and Mountain Dew Code Monkey very simple man With big warm fuzzy secret heart: Code Monkey like you Code Monkey hang around at front desk Tell you sweater look nice Code Monkey offer buy you soda Bring you cup, bring you ice You say no thank you for the soda cause Soda make you fat Anyway you busy with the telephone No time for chat Code Monkey have long walk back to cubicle he sit down pretend to work Code Monkey not thinking so straight Code Monkey not feeling so great Code Monkey like Fritos Code Monkey like Tab and Mountain Dew Code Monkey very simple man With big warm fuzzy secret heart: Code Monkey like you Code Monkey like you a lot Code Monkey have every reason To get out this place Code Monkey just keep on working See your soft pretty face Much rather wake up, eat a coffee cake Take bath, take nap This job “fulfilling in creative way” Such a load of crap Code Monkey think someday he have everything even pretty girl like you Code Monkey just waiting for now Code Monkey say someday, somehow Code Monkey like Fritos Code Monkey like Tab and Mountain Dew Code Monkey very simple man With big warm fuzzy secret heart: Code Monkey like you ^ Teenage me programming all night listening to this on repeat making proxy hacks using .NET to abuse MMOS and make $$$$ ^ xD Oh the early 2000s ♥
The RC car knows where it is at all times. It knows this because it knows where it isn't. By subtracting where it is from where it isn't, or where it isn't from where it is (whichever is greater), it obtains a difference, or deviation. The guidance subsystem uses deviations to generate corrective commands to drive the RC car from a position where it is to a position where it isn't, and arriving at a position where it wasn't, it now is. Consequently, the position where it is, is now the position that it wasn't, and it follows that the position that it was, is now the position that it isn't.
Hey, quick suggestion! I noticed the vehicle was tending to take corners too fast, resulting in it having to realign itself back onto the determined path on the next straight. To improve efficiency on your turns I would add a deceleration/ braking element to that portion of the path. By determining the maximum velocity your vehicle can take that 180 degree turn at without skidding or flipping (Ekin, centrifugal < Fm, gravitational Force on vehicle?) then you can create a brake slope starting at the point of highest centrifugal force (1/4 PI of turn circle, as the 180 degree turn is a 1/2 PI and you want the center of this section as it is the outer most point of the turn) and then setting up brake points along the run-up to the turn that will reach your target speed (the maximum achievable corner speed) by the time the car hits that outer most point in the turn. Then you could even reverse this brake slope on the tail end of the turn into an acceleration gradient returning the vehicle to it’s top speed for the straightaway. Just a thought though, I have no experience in any of this and I don’t know if this is even a feasible solution, just thought I’d throw the idea out there in case it’s worth anything!
When you said LIDAR, I thought you said lighter, and immediately I imagined a self driving tank with a flamethrower, haha. I loved your video! With this kind of epic DIY videos, you learn a lot about something you'd likely never learn otherwise and I'm sure it gave you some mad respect for the Tesla FSD developers and what all they do!
The vehicle is prebuilt from what I understood. It includes a LiDAR scanner and an NVIDIA Jetson Nano microprocessor mounted on it from what I can see. The code is also in the description.
Did very similar thing with a flying drone for a competition. Covid happened and before the next time, the challenge was removed. Didn't even get to test out my latest ideas because I graduated and left the city. This video brought back the itch.
Great insights into how challenging it is to make an RC car automatous. I noticed is at higher speeds the car seemed to overshoot it’s intended path when cornering. Not sure if this a latency between the car knowing it’s position and when steering response is applied, or something else (like a slippery floor). An easy fix is to base the speed of the car on how straight the upcoming path is, this way it will slow as an expected curve in its path tightens. This should then allow for higher top speed in the straighter sections of the course. Thus an overall faster speed on laps. ;) Look forward to when having multiple cars racing, and all the improvements being worked on!
He had subscribers in the 2k range and I just refreshed and it’s now in the 3k range, his video quality is superb, it’s just the timing between videos holding him back
Hello, amazing video, congratulations! I'm from Brazil, I work in a research center, I'm starting an auto AGV project and your video was recommended to me on YT. I continue to follow your work. success
Compute the sum of the curvature of the N points ahead of the vehicle. Perhaps extend the lookahead by a factor of the current velocity. Then use the result as an input to a throttle PID feedback control loop. Low curvature should result in a high target velocity, and high curvature in a low target velocity. This should make the vehicle decelerate sharply in anticipation of upcoming corners and keep a tighter racing line. I would compute the curvature like this: let summed_angle be 0 loop 0...N let vector1 be point[index + 1] - point[index] let vector2 be point[index + 2] - point[index] normalize vector1 normalize vector2 let cos_angle be vector1 dot vector2 let angle be inverse cosine of cos_angle let summed_angle be summed_angle + angle end loop return summed_angle
So essentially you design a vehicle that get inputs which are used to build a virtual environment. You then use this virtual environment to run simulations to train a model which you can apply to your vehicle and it will use the sensors and input methods to rebuild the virtual training environment at runtime allowing it to essentially operate in the real world. That seems like one of the most exciting industries to be getting into especially as someone interested in deep space exploration as AI seems to be the future to long term multi generation exploration missions which are going to become a thing in the not so distant future as we start to apply them to explore the remote ice moons in our solar system like Europa.
Sometimes when dealing with Ros, one thinks it might be easier to remake your own ros than deal with the shenanigans of ROS. But we are all lazy so we deal with it
Jumps for alternate routes would be cool in a race. All you need is accel/decel to manage orientation. Accelerate brings the front end up, breaking lowers the nose so you can land flat.
the "I still wanted to give you guys a taste of how fast it could go" part reminded me of when I pressed W on my laptop to test the manual driving on my WRO car and it flew into a wall and turned itself off
Very nice! This is a perfect project for Machine Learning. There are youtube videos where ML gets used for race cars in a 2D video game that teaches itself how to drive. Your car can steer itself this is very cool. But it can teach itself how to steer itself. Just an idea for you.
Thicker shock oils and firmer springs would make it handle better on a smoother surface as that's probably setup for offroad surface. More tweaking to increase some steering would help also. You can tune the car to work better and go around for a faster track time.
This would be a great Setup for an AI-Based Driving FPV RC Car. Use a neural Network for the Controller-Points with Attributes like Speed, Brakes and Steering and let it develop with small changes in the Attributes to the wich Evolutionstage gets the best Laptime...
very awesome speed montage and video! you can go way faster by teaching it to break early, then accelerate once it passes the apex of each turn/corner. maintain the momentum
Just one thing I didn't understand.... I know you specifically noted that bathrooms are the best place to record RUclips videos but I still can't wrap my head around it. 😂
Could you put a bumper with pressure sensors on the car and tune your algorithm to be More or less carful in a turn depending on if it hit the wall or not?
I really think we need more concrete walls and maybe even throw in some cement ceilings too. You're gonna want more REVERB! Lol. For real though, great job on the autonomous shenanigans!
as a developer is common for us to spend whole weekends or nights just finding a silly mistake like a negative sign. Try GPT to fix the bug by telling what you expect and what your working code do. It literally saved me days of my life. Awesome project.. now lets see AI racing!!!! 🚓🚗
I wonder if some missiles have a system in them that looks at the terrain and compares it to a map and can tell where it is and guide itself without the help of gps or laser guidance. It would be cool to have a drone that could do that so that no amount of signal jamming could stop it from flying it's intended path. Basically, the same way humans or dogs or horses get to where they're going when they're familiar with the area.
The missile knows where it is at all times. It knows this because it knows where it isn't. By subtracting where it is from where it isn't, or where it isn't from where it is (whichever is greater), it obtains a difference, or deviation. The guidance subsystem uses deviations to generate corrective commands to drive the missile from a position where it is to a position where it isn't, and arriving at a position where it wasn't, it now is. Consequently, the position where it is, is now the position that it wasn't, and it follows that the position that it was, is now the position that it isn't. In the event that the position that it is in is not the position that it wasn't, the system has acquired a variation, the variation being the difference between where the missile is, and where it wasn't. If variation is considered to be a significant factor, it too may be corrected by the GEA. However, the missile must also know where it was. The missile guidance computer scenario works as follows. Because a variation has modified some of the information the missile has obtained, it is not sure just where it is. However, it is sure where it isn't, within reason, and it knows where it was. It now subtracts where it should be from where it wasn't, or vice-versa, and by differentiating this from the algebraic sum of where it shouldn't be, and where it was, it is able to obtain the deviation and its variation, which is called error.
02:12 you perfectly captured and displayed that feeling that a programmer feels when his super complicated code actually works
Code Monkey get up get coffee
Code Monkey go to job
Code Monkey have boring meeting
With boring manager Rob
Rob say Code Monkey very dilligent
But his output stink
His code not “functional” or “elegant”
What do Code Monkey think?
Code Monkey think maybe manager want to write god damned login page himself
Code Monkey not say it out loud
Code Monkey not crazy, just proud
Code Monkey like Fritos
Code Monkey like Tab and Mountain Dew
Code Monkey very simple man
With big warm fuzzy secret heart:
Code Monkey like you
Code Monkey hang around at front desk
Tell you sweater look nice
Code Monkey offer buy you soda
Bring you cup, bring you ice
You say no thank you for the soda cause
Soda make you fat
Anyway you busy with the telephone
No time for chat
Code Monkey have long walk back to cubicle he sit down pretend to work
Code Monkey not thinking so straight
Code Monkey not feeling so great
Code Monkey like Fritos
Code Monkey like Tab and Mountain Dew
Code Monkey very simple man
With big warm fuzzy secret heart:
Code Monkey like you
Code Monkey like you a lot
Code Monkey have every reason
To get out this place
Code Monkey just keep on working
See your soft pretty face
Much rather wake up, eat a coffee cake
Take bath, take nap
This job “fulfilling in creative way”
Such a load of crap
Code Monkey think someday he have everything even pretty girl like you
Code Monkey just waiting for now
Code Monkey say someday, somehow
Code Monkey like Fritos
Code Monkey like Tab and Mountain Dew
Code Monkey very simple man
With big warm fuzzy secret heart:
Code Monkey like you
^ Teenage me programming all night listening to this on repeat making proxy hacks using .NET to abuse MMOS and make $$$$ ^ xD
Oh the early 2000s ♥
I'm a full time programmer and I'm this excited even when easy code works that didn't work for a long time bc I was stupid.
Facts
I just got this feeling a minute ago. Always a very satisfying feeling
I like the idea of "Quiet study space" with an RC car zooming by blasting a laser and smashing into most walls 7:10
bro the rc car is ding dong diching💀💀
"stephen please"
lmao
Well that's perfect because people in that space can't complain, because they have to stay silent in there.
The RC car knows where it is at all times. It knows this because it knows where it isn't. By subtracting where it is from where it isn't, or where it isn't from where it is (whichever is greater), it obtains a difference, or deviation. The guidance subsystem uses deviations to generate corrective commands to drive the RC car from a position where it is to a position where it isn't, and arriving at a position where it wasn't, it now is. Consequently, the position where it is, is now the position that it wasn't, and it follows that the position that it was, is now the position that it isn't.
Your a genius man
But because of the coder made a small mistake it does this whole thing backwards
@val are you sarcastic cos I hope so
It knows where it is because that's where it is.
😂
04:10 nah, it's warming up its tires for the actual laps lmfao
The comment I was looking for 🤣
6:00, Love that the clock is just in time seek mode where it turns like that until it hits the correct time (radio controlled). Albeit sped up a bit.
Hey, quick suggestion! I noticed the vehicle was tending to take corners too fast, resulting in it having to realign itself back onto the determined path on the next straight. To improve efficiency on your turns I would add a deceleration/ braking element to that portion of the path. By determining the maximum velocity your vehicle can take that 180 degree turn at without skidding or flipping (Ekin, centrifugal < Fm, gravitational Force on vehicle?) then you can create a brake slope starting at the point of highest centrifugal force (1/4 PI of turn circle, as the 180 degree turn is a 1/2 PI and you want the center of this section as it is the outer most point of the turn) and then setting up brake points along the run-up to the turn that will reach your target speed (the maximum achievable corner speed) by the time the car hits that outer most point in the turn. Then you could even reverse this brake slope on the tail end of the turn into an acceleration gradient returning the vehicle to it’s top speed for the straightaway.
Just a thought though, I have no experience in any of this and I don’t know if this is even a feasible solution, just thought I’d throw the idea out there in case it’s worth anything!
As a software development student, I can confirm this guy is leagues ahead of a normal programmer.
When you said LIDAR, I thought you said lighter, and immediately I imagined a self driving tank with a flamethrower, haha. I loved your video!
With this kind of epic DIY videos, you learn a lot about something you'd likely never learn otherwise and I'm sure it gave you some mad respect for the Tesla FSD developers and what all they do!
That's awesome! Now make it want to explore unseen parts of the map so it can map whole buildings!
Would love to see how you built and programmed everything.
The vehicle is prebuilt from what I understood.
It includes a LiDAR scanner and an NVIDIA Jetson Nano microprocessor mounted on it from what I can see.
The code is also in the description.
From what we can see in the video, he used ROS and some of its software
@@hasanthesyrian_ looks like jetson xavier nx
I don't want to see that
Did very similar thing with a flying drone for a competition. Covid happened and before the next time, the challenge was removed. Didn't even get to test out my latest ideas because I graduated and left the city. This video brought back the itch.
Finally something, I'd been longin' for long... I can't jus' thank ya enough!
Great insights into how challenging it is to make an RC car automatous.
I noticed is at higher speeds the car seemed to overshoot it’s intended path when cornering. Not sure if this a latency between the car knowing it’s position and when steering response is applied, or something else (like a slippery floor). An easy fix is to base the speed of the car on how straight the upcoming path is,
this way it will slow as an expected curve in its path tightens. This should then allow for higher top speed in the straighter sections of the course. Thus an overall faster speed on laps. ;)
Look forward to when having multiple cars racing, and all the improvements being worked on!
yea, it's the slippery floor. Working on a 2nd video using racing lines, hoping to release it soon!
This video is really well made, keep going like this and you’ll have a million subscribers in no time. Awesome project!
He had subscribers in the 2k range and I just refreshed and it’s now in the 3k range, his video quality is superb, it’s just the timing between videos holding him back
@@christopherbryan7470 yep, and now, a week later it's 8.2K subs. A thousand per day, it's really nice to see! Good going, Steven! Also good editing.
7 days later, he’s almost at 9k
1:15 You just captured in film a phenomena that happens with every developer in this planet 🤣
Some people build projects in garages.
This guy is next level! He builds them in toilets! Bravo!
Great work! And love the Initial D music at the end, haha.
You are brilliant. Keep up the great work! PS love your recording "studio"!
I have the same assignment for final project in mobile robots last semester. Great job!
Hello, amazing video, congratulations! I'm from Brazil, I work in a research center, I'm starting an auto AGV project and your video was recommended to me on YT. I continue to follow your work. success
Hey, currently doing something similar. Anyway i can contact you?
Love when RUclips suggests me a UW project on my homepage
Compute the sum of the curvature of the N points ahead of the vehicle.
Perhaps extend the lookahead by a factor of the current velocity.
Then use the result as an input to a throttle PID feedback control loop.
Low curvature should result in a high target velocity, and high curvature in a low target velocity.
This should make the vehicle decelerate sharply in anticipation of upcoming corners and keep a tighter racing line.
I would compute the curvature like this:
let summed_angle be 0
loop 0...N
let vector1 be point[index + 1] - point[index]
let vector2 be point[index + 2] - point[index]
normalize vector1
normalize vector2
let cos_angle be vector1 dot vector2
let angle be inverse cosine of cos_angle
let summed_angle be summed_angle + angle
end loop
return summed_angle
Impressive! Cool project SG!
Bruh this channel gonna be huge!!
So essentially you design a vehicle that get inputs which are used to build a virtual environment. You then use this virtual environment to run simulations to train a model which you can apply to your vehicle and it will use the sensors and input methods to rebuild the virtual training environment at runtime allowing it to essentially operate in the real world.
That seems like one of the most exciting industries to be getting into especially as someone interested in deep space exploration as AI seems to be the future to long term multi generation exploration missions which are going to become a thing in the not so distant future as we start to apply them to explore the remote ice moons in our solar system like Europa.
Sometimes when dealing with Ros, one thinks it might be easier to remake your own ros than deal with the shenanigans of ROS. But we are all lazy so we deal with it
"if the surface was to change , u have to do tuning from start"
Sun tzu the art of war
I love the way hes like s dog getting riled up for a sprinty time
Jumps for alternate routes would be cool in a race. All you need is accel/decel to manage orientation. Accelerate brings the front end up, breaking lowers the nose so you can land flat.
rc and programming? heck yeah!!
as a huge rc enthusiast, i love this! eventually I want to do the same with my rc car.
2:52 This music reminded me the FVDisco lol. Nice video btw.
For part 2, please make both of them update their positions on the same minimap
the "I still wanted to give you guys a taste of how fast it could go" part reminded me of when I pressed W on my laptop to test the manual driving on my WRO car and it flew into a wall and turned itself off
The pause on Soham's face killed me lmaoo
Cant wait to see ur self driving racers!
Very nice!
This is a perfect project for Machine Learning. There are youtube videos where ML gets used for race cars in a 2D video game that teaches itself how to drive.
Your car can steer itself this is very cool. But it can teach itself how to steer itself. Just an idea for you.
even with its super fast time to top speed, it's leave easily one second in those corners. i think it can do those flat out with an actual racing line
Great man! Great efforts.. like tremendous efforts!!
def needs more views
Can you tell me about programming language and interface that you use for controlling car ?!
Good job !!!
It's freakin awesome dude!
Thicker shock oils and firmer springs would make it handle better on a smoother surface as that's probably setup for offroad surface. More tweaking to increase some steering would help also. You can tune the car to work better and go around for a faster track time.
6:10 with all these yellow lights, the car is definitely running in the backrooms
well done... can't wait for your next video... keep up the great work.
thank you!!
Imagine, how awesome be, if you make a video series to follow and reproduce the entire process in to different robots.
This would be a great Setup for an AI-Based Driving FPV RC Car. Use a neural Network for the Controller-Points with Attributes like Speed, Brakes and Steering and let it develop with small changes in the Attributes to the wich Evolutionstage gets the best Laptime...
as its a smooth floor and you had eurobeat playing, try tuning your program so the vehicle drifts around the corners!
Very nice video and thanks for showing the hallways of UW. It has been some years since I last went there. 👍
Reminds me of my first big EE project on a team at DigiPen in 2003-2004!
Banger video the simple - error that took a month to correct hit deep into my PTSD xD
Damn Rice is that you?
what a great project using rc cars
YES steven so cool. Such role model
This was so fun to watch. Thank you for the inspiration! By the way, bathrooms, lol
very good topic. not many people share this automated mapping ros stuff
The Eurobeat was just 👌
very awesome speed montage and video!
you can go way faster by teaching it to break early, then accelerate once it passes the apex of each turn/corner. maintain the momentum
5:42 I think 5 RViz icons will make it works even better
1 letter can cause 1 month of delay. Really makes you appreciate programmers.
Bro this looks cool Imma try too
You need to count the torque of the steering system and time required to set wheels at a certain angle
Nice video. I'm waiting for the next one
HAHAHAHA, one character fixes after a month are always the funniest
Just one thing I didn't understand....
I know you specifically noted that bathrooms are the best place to record RUclips videos but I still can't wrap my head around it. 😂
WOW Just keep up the good work bro!!!!
loved the whole videos, can't wait for more
You are Awesome Guy
This is the most intelligent video ive ever seen
Could you put a bumper with pressure sensors on the car and tune your algorithm to be More or less carful in a turn depending on if it hit the wall or not?
I think you have some roll-induced steer happening. You can fix this by modifying the steering arms a bit.
0:13 Literally every programmer in the world
So true 😅
It's braking to compensate during a return when it should probably slow down before the turn and regain speed coming out.
the car knows where it is because it knows where it isn't
Great project and video!
I really think we need more concrete walls and maybe even throw in some cement ceilings too. You're gonna want more REVERB! Lol. For real though, great job on the autonomous shenanigans!
Favorite RUclipsr is back!!
hopefully ;)
Great vid, immediate subscription
you might want to check out dynamic programming. it's a classic CS algo for this.
1:49 we all know that feeling, mate ;)
if you handle breaking properly and factor it in your algorithm, you can get better results
(-) I felt your pain there! imagine a zero pixel space! I spent weeks refactoring code with the same space!!!!
Amazing robocar! Excellent work!😃👍
man that is super dope
wow this is really cool bro !!!!
if you only the lidar sensor,I suggestion you can try this algorithm named hector
_SLAM_
One single "-" character, lol.
In racing, it helps to brake early, then power the gas out and into corners.
Thanks for sharing the code
I hate to say it it would've gone twice as fast if you wanna put a little soda on the tires love the video
It was indeed very satisfying to watch.
Congratulations, it was a great job!!! Try to improve the racing line because in my opinion the car could cut corners better.
Wow, that's awesome. You should develop one for the outdoors to withstand the elements aka a home security system. If it's possible. Great job btw.
Freaking awesome!
This is cool! Subscribed.
Epic!
"All we need to do is ... " :D
Do I smell famous last words?
Lol, an errant negative sign. 😆 Sounds like a unit test or few would have helped!
more vid about this project please
Time to upgrade your Ubuntu, 18.04 is EOL. :) Great work on the car!
as a developer is common for us to spend whole weekends or nights just finding a silly mistake like a negative sign. Try GPT to fix the bug by telling what you expect and what your working code do. It literally saved me days of my life. Awesome project.. now lets see AI racing!!!! 🚓🚗
I wonder if some missiles have a system in them that looks at the terrain and compares it to a map and can tell where it is and guide itself without the help of gps or laser guidance. It would be cool to have a drone that could do that so that no amount of signal jamming could stop it from flying it's intended path. Basically, the same way humans or dogs or horses get to where they're going when they're familiar with the area.
The missile knows where it is at all times. It knows this because it knows where it isn't. By subtracting where it is from where it isn't, or where it isn't from where it is (whichever is greater), it obtains a difference, or deviation. The guidance subsystem uses deviations to generate corrective commands to drive the missile from a position where it is to a position where it isn't, and arriving at a position where it wasn't, it now is. Consequently, the position where it is, is now the position that it wasn't, and it follows that the position that it was, is now the position that it isn't.
In the event that the position that it is in is not the position that it wasn't, the system has acquired a variation, the variation being the difference between where the missile is, and where it wasn't. If variation is considered to be a significant factor, it too may be corrected by the GEA. However, the missile must also know where it was.
The missile guidance computer scenario works as follows. Because a variation has modified some of the information the missile has obtained, it is not sure just where it is. However, it is sure where it isn't, within reason, and it knows where it was. It now subtracts where it should be from where it wasn't, or vice-versa, and by differentiating this from the algebraic sum of where it shouldn't be, and where it was, it is able to obtain the deviation and its variation, which is called error.