Author Topic: Autonomous Combat League - Bot Workshop  (Read 1359 times)

MarvinMan

  • Automation Expert
  • Experienced Member
  • ***
  • Posts: 236
  • Likes: +4/-0
    • View Profile
Re: Autonomous Combat League - Bot Workshop
« Reply #15 on: March 21, 2016, 12:05:41 am »
well in my case, you don't!
Fair enough. Although most of the stuff you've put together seems to work reasonably well, so I wouldn't be surprised if you could splice together an effective combat bot.

I think tomorrow I'll have a go at converting my grenade cannon from semi-auto to fully automatic. With that much firepower, there probably isn't a need to bother with aiming and all that BS.

PressureLine

  • XFM Developer
  • Administrator
  • Experienced Member
  • *****
  • Posts: 192
  • Likes: +4/-0
    • View Profile
    • Rawbots Club Forums
Re: Autonomous Combat League - Bot Workshop
« Reply #16 on: March 21, 2016, 12:27:08 am »
For me, the KISS principle applies. I also try to code for robustness, more of a brute force approach rather than attempting finesse.
  • Navigation: I basically consider it a win if I can keep my bot from slamming directly into walls at full speed or otherwise getting stuck as well as being able to climb ramps most of the time. Giving your bot a smooth underside helps a lot with not getting stuck on loose parts if you are using small wheels (look at FireStorm or SawTooth for an idea of the effectiveness of this)
  • Aiming: Again, I tend to operate on a 'close enough is good enough' approach. Random movement (of both the bot and it's target), inertia, debris, recoil, etc etc make it semi-pointless to try and get too fancy with aiming systems, I figure if I'm landing most of my shots within the same small terrain hex as the target (or the shots are passing through where the hex would be if it was centered on the target) when at range I am doing ok

iow: rather than trying to code for 'good' I try to code for 'not suck.' Sometimes I even get it right 8)
"Never assume that anything you've never seen before is benign. Most particularly not something that says 'MARINES' on it."

z26

  • Experienced Member
  • ***
  • Posts: 108
  • Likes: +0/-0
    • View Profile
Re: Autonomous Combat League - Bot Workshop
« Reply #17 on: March 21, 2016, 12:30:06 am »
Personally I'm not very excited by that approach, but given the current limitations of rawbots I have to admit it is the most functionnal way to go.

MarvinMan

  • Automation Expert
  • Experienced Member
  • ***
  • Posts: 236
  • Likes: +4/-0
    • View Profile
Re: Autonomous Combat League - Bot Workshop
« Reply #18 on: March 21, 2016, 01:27:16 am »
Yeah, I can understand that. I had been trying to keep things simple (unsuccessfully you could say).

Basic terrain avoidance and a cannon that constantly fires on the latest thing to come into its field of view is simple enough, but even small additions like steering towards the target seem to make things exponentially more complex.

PressureLine

  • XFM Developer
  • Administrator
  • Experienced Member
  • *****
  • Posts: 192
  • Likes: +4/-0
    • View Profile
    • Rawbots Club Forums
Re: Autonomous Combat League - Bot Workshop
« Reply #19 on: March 21, 2016, 01:44:47 am »
I think the way to go on that is to try and set up an input system that acts like the one on the basic bot that spawns in Blueshift. So you basically need to find a way to manipulate the inputs you are getting from your sensors and turn them into a 1 for throttle and steering. Once you have that, assigning a 'weight' to terrain collision avoidance vs target tracking is fairly easy and it's just a matter of tuning the weights to affect the behaviour (and that's without even going into variable behaviour based on target distance and/or speed) of the bot until you get the desired result.
"Never assume that anything you've never seen before is benign. Most particularly not something that says 'MARINES' on it."

PressureLine

  • XFM Developer
  • Administrator
  • Experienced Member
  • *****
  • Posts: 192
  • Likes: +4/-0
    • View Profile
    • Rawbots Club Forums
Re: Autonomous Combat League - Bot Workshop
« Reply #20 on: March 21, 2016, 04:17:06 am »
Personally I'm not very excited by that approach, but given the current limitations of rawbots I have to admit it is the most functionnal way to go.

I think it's more a symptom of low part counts, especially so in the situation of lightweight bots. With a partcount of 30, you are pushing the limit of how low your partcount can go before you start losing functionality. I think that HeavyWeight bots are much easier to design and code, since you have more 'space' for better and better protected sensor and weapon suites, so your coding can actually be much more concentrated on being good as opposed to simply being not bad.

I guess it's kinda the opposite of how RL combat bot building works, where hobbyists can (and do) build effective 3lb combat bots without having extensive engineering expertise, but it takes a much more serious amount of ability to build an effective 300lb combat bot.
"Never assume that anything you've never seen before is benign. Most particularly not something that says 'MARINES' on it."

PressureLine

  • XFM Developer
  • Administrator
  • Experienced Member
  • *****
  • Posts: 192
  • Likes: +4/-0
    • View Profile
    • Rawbots Club Forums
Re: Autonomous Combat League - Bot Workshop
« Reply #21 on: March 23, 2016, 12:31:07 am »
Personally I'm not very excited by that approach, but given the current limitations of rawbots I have to admit it is the most functionnal way to go.

I think it's more a symptom of low part counts, especially so in the situation of lightweight bots.

In saying that, I'm actually quite happy with the coded behaviors of the two lightweight bots that I've built over the past week. I'm just really interested to see what y'all come up with.
"Never assume that anything you've never seen before is benign. Most particularly not something that says 'MARINES' on it."

MarvinMan

  • Automation Expert
  • Experienced Member
  • ***
  • Posts: 236
  • Likes: +4/-0
    • View Profile
Re: Autonomous Combat League - Bot Workshop
« Reply #22 on: March 23, 2016, 12:48:20 am »
The simple low part count bots seem to work reasonably well, but there isn't much room to do anything particularly creative with it. While also somewhat applicable to larger bots, the lower part count classes seem to come down to driving at the opponent while firing and hoping that your DPS/armour ratio is higher than the opponent.

I've had another go at building a navigation system using fixed hooks inspired by the one used on Pressurelines bots, combined with the reversible drive from the Broadside platform. It still needs a way to detect ramps, but so far it's working well and is fairly stable at high speed. The only problem I've had with this configuration compared to my usual scanning hooks is that it needs an extra hook to cover the blind spot straight ahead of the bot.

PressureLine

  • XFM Developer
  • Administrator
  • Experienced Member
  • *****
  • Posts: 192
  • Likes: +4/-0
    • View Profile
    • Rawbots Club Forums
Re: Autonomous Combat League - Bot Workshop
« Reply #23 on: March 23, 2016, 02:34:38 am »
Well in the case of melee bots, to me the optimal behavior is simply to get as close as you can as fast as you can.

I probably could have made Goblin's code work towards keeping at a range, rather than simply turning towards the target and continuing to drive forwards, obviously the lack of a turret means you can't add in a 'circle the target' behaviour since if it isn't facing the target it can't hit the target, but any ramming is largely unintentional. Perhaps for the MKII having it match speed with the target once it is within a certain range (10 units or so?) although that could make it vulnerable at close range. Once the bot roster fills out a bit I will probably revisit Goblin's code and see what changes can be made to keep it competitive.

Regarding 'fixed hook' navigation: I have found that the altitude of the hooks (as well as the placement) is an important factor in being able to navigate ramps, if you can get the height of the hooks right the bot should be on the ramp before it hits the wall detection threshold while still being able to avoid hitting walls.

The other alternative is however the heck tob.s did wall detection on his erazer bot with it's rapidly spinning hook & camera. There's probably something worth investigating there in terms of rather than coding for continuous movement you could code to move-scan-move-scan for both targetting and wall avoidance.
"Never assume that anything you've never seen before is benign. Most particularly not something that says 'MARINES' on it."

cupid_the_conqueror

  • Global Moderator
  • Experienced Member
  • *****
  • Posts: 89
  • Likes: +0/-0
  • A filthy casual
    • View Profile
    • the truth of rawbots
Re: Autonomous Combat League - Bot Workshop
« Reply #24 on: March 23, 2016, 04:10:31 am »
honestly guys Im going to be soo busy over the next while it'll take me weeks to get around to splicing a combat bot together.

however, in my limited time I was able to make fireworks! exploding rainbow continuim clusters ftw! 
At the end of the day, love conquerors all.

MarvinMan

  • Automation Expert
  • Experienced Member
  • ***
  • Posts: 236
  • Likes: +4/-0
    • View Profile
Re: Autonomous Combat League - Bot Workshop
« Reply #25 on: March 23, 2016, 09:45:56 am »
Actually, for low-profile bots like the Goblin, ramming the target seems to work well as a lot of turrets have trouble aiming downwards.

What about aiming the hooks upwards at a similar angle to ramps? That seems as though it would let the hooks see over the top of ramps, while allowing them to keep their low mounting position and stay a reasonable distance from vertical walls.

I remember the erazer being an absolute beast, so that'll definitely be worth looking at later.

I'm working on a real robot project currently, which hopefully will be finished today or tomorrow so I have more free time to work on an ACL bot.

PressureLine

  • XFM Developer
  • Administrator
  • Experienced Member
  • *****
  • Posts: 192
  • Likes: +4/-0
    • View Profile
    • Rawbots Club Forums
Re: Autonomous Combat League - Bot Workshop
« Reply #26 on: March 23, 2016, 10:09:20 am »
Discovered a fatal flaw in the construction of Canary, I just cannot seem to make it want to fly on only 3 jets (also has a NaN crashbug that I can't seem to nail down, but it only happens when it is failing at flying and flipping all around the arena). I might just release it anyway, since some flying combat bot is better than no flying combat bot.

Looks like I need to go more towards the original hoverbot concept in size, maybe hexagonal, probably heavyweight :-\
"Never assume that anything you've never seen before is benign. Most particularly not something that says 'MARINES' on it."

MarvinMan

  • Automation Expert
  • Experienced Member
  • ***
  • Posts: 236
  • Likes: +4/-0
    • View Profile
Re: Autonomous Combat League - Bot Workshop
« Reply #27 on: March 24, 2016, 09:22:10 pm »
I had a got at using angled hooks to deal with ramps, and it works well. The biggest problem I've found is attaching the hooks at the right angle without using elbows.

Here's the blueprint, before I screw it up trying to add target tracking. At the current speed, the downforce jets probably aren't all that necessary, but they do help to keep all the wheels on the ground.
https://www.dropbox.com/s/f32rzx59cd7b0iz/bp_forward2?dl=0

MarvinMan

  • Automation Expert
  • Experienced Member
  • ***
  • Posts: 236
  • Likes: +4/-0
    • View Profile
Re: Autonomous Combat League - Bot Workshop
« Reply #28 on: March 24, 2016, 11:29:39 pm »
Nearly got a working weapons system, but now it's throwing a load of NaNs, one of which has made its way through a MIN/MAX limiter.

On a more helpful note, using a second camera with its near/far centred on the output of the main scanning camera really helps filter out large structures like bots from scattered debris. In this bot, the rear 2 cameras scan and filter, and the front one checks line of sight to the target.

MarvinMan

  • Automation Expert
  • Experienced Member
  • ***
  • Posts: 236
  • Likes: +4/-0
    • View Profile
Re: Autonomous Combat League - Bot Workshop
« Reply #29 on: March 25, 2016, 01:08:20 pm »
This isn't even funny any more. The NaNs on their own are annoying, but now I can't even filter them out consistently.

In the green highlighted box, there are two identical proximeter systems, both are generating NaNs for no particular reason, and only one of which is correctly limiting the output to 400.